WPF应用程序在调试模式下运行得更快

时间:2017-08-20 14:08:47

标签: c# wpf canvas

我一直在研究可视化复杂功能的WPF应用程序 在画布上用彩色矩形。目前,当点击一个按钮时,同时绘制了大约40,000个矩形。问题是如果在调试模式(F5)下执行我的应用程序需要几秒钟,而如果在没有重新布线(Ctrl + F5)的情况下执行它需要一分钟,直到在画布上绘制所有矩形。分析内存表明,调试模式下的内存使用量比正常模式下快得多。

为了更好地理解: 我有一个循环,以0.05步骤经过(-5,-5)到(5,5)之间的所有复数。对于每个计算值,根据相位和幅度评估矩形的颜色。

编辑: 单击一个按钮后循环开始,c是复杂类的实例,r,i是双重值,以保证复数的当前值:

c = new Complex(-5, -5);
while(c.Real < 5){
r = c.Real;
rsum = 0.0d;
    while(c.Imaginary < 5){
    ShowRect(c);
    i = this.c.Imaginary;
    c = new Complex(r, i + 0.05);
    isum += 0.05d;
    }
r = c.Real;
c = new Complex(r + 0.05, -5);
rsum += 0.05d;
}


private void ShowRect(Complex c){
  //Some calculation stuff with res as result value
  rect = new Rectangle();
  //Setting the properties of the rectangle object
  rect.Fill = EvalColor(res);
  canvas.Children.Add(rect);

private SolidColorBrush EvalColor(Complex com){
 if(com.Phase <= -35 * Math.PI / 36)
    return new SolidColorBrush(Color.FromRGB(1, 1, 1));
 else if(...) 
 //same scheme for every statement

有谁知道为什么会这样?我刚刚找到一个没有任何答案的线程多年前写的。感谢任何帮助。

问候并度过愉快的一天

0 个答案:

没有答案