小编Cli*_*oth的帖子

.NET Framework 4.5上的意外加速

在过去的几个月里,我一直在运行一个处理器密集型程序,我在C#中编写了一个名为Zeros6的程序.

到目前为止,大约经过的时间为157天,处理器总时间为1,217天.[计算机的一些细节:英特尔酷睿i7 2600/3.4 GHz/4内核+超线程 - > 8个处理器.

我使用Visual Studio Express 2010和.NET Framework的第4版(我认为)编写了程序.

无论如何,今天我决定安装Visual Studio Express 2012.安装程序安装了.NET Framework 4.5版,然后请求重新启动以继续安装.我停止了Zeros6程序并确认重启.重启后,Zeros6像往常一样自动重启,Visual Studio安装继续,很快就完成了.然后我震惊地发现Zeros6的运行速度比通常运行的要快.速度指示器通常相当稳定在5.5(每个皮秒的皮秒数)已下降到2.0 - 我从未见过它低于5.34.然后我停下来并启动了几次程序,然后重新启动计算机,但速度的提高仍在继续.如果我们将旧速度称为100%,则新速度为275%!!

我很想知道发生了什么.

一些声明......

uint[] digits;  
uint   startI;  
uint   stopI;  
public static readonly int  bigPowerIncrement = 34;  
public static readonly uint myBase = 1000000000;  
Run Code Online (Sandbox Code Playgroud)

所有8个处理器大部分时间花在这上面......

  {
    ulong carry = 0;
    unchecked
    {
      for (uint i = startI; i < stopI; i++)
      {
        ulong m = ((ulong)digits[i] << bigPowerIncrement) | carry;
        carry = m/myBase;
        if ((digits[i] = (uint)(m - myBase*carry)) < 1000000) …
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
1
解决办法
1075
查看次数

两组点之间的最小距离

我在度量空间中有一组 n 个点。这些点都是蓝色的。我在空间中有另一组 n 点。这些点都是红色的。我想以这样的方式连接这些点,即每个蓝点都连接到一个红点,每个红点都连接到一个蓝点。(显然有 n! 种方法可以做到这一点。)我希望找到使连接总长度最小的连接集。这个问题叫什么?

algorithm

3
推荐指数
1
解决办法
84
查看次数

NumericUpDown.Value未舍入到DecimalPlaces

假设我有一个DecimalPlaces = 2的NumericUpDown.

用户键入"1.233"(他们不知道,不小心轻敲"3"键两次)然后导航离开控件.此输入现在在控件中显示为"1.23".但是,Value属性现在为1.233.因此,对用户来说,他们正在使用值1.23,实际上,他们正在使用值1.233.有没有办法让NumericUpDown返回"正确"值:1.23?

我知道DecimalPlaces属性"...设置要显示的小数位数",但是用户无法通过简单地读取屏幕来确定将使用的值.

一种方法是始终忽略所有NumericUpDowns的Value属性,只使用Text属性(从IntelliSense隐藏)并对该属性执行decimal.Parse() - 但这看起来很尴尬.另一点是,如果用户键入"1.233"然后导航离开控件,那么,当ValueChanged事件发生时,Text属性仍为"1.233".

c# numericupdown

2
推荐指数
1
解决办法
1688
查看次数

标签 统计

c# ×2

.net ×1

algorithm ×1

numericupdown ×1