日期:2014-05-17  浏览次数:20855 次

大家看看这是怎么回事
我用相同的测试代码,在vs2010中调试时明显比在vs2008中卡很多,在2010中拖动窗体明显要“卡”点,这是怎么回事。
代码很简单,大家勿笑哈 ^_^ 

private delegate void MyDelegate(int i);
  private delegate void MyDelegate1(ProgressBar p, int i);
   
  private void button1_Click(object sender, EventArgs e)
  {
  Thread td = new Thread(ThreadDoWork);
  td.IsBackground = true;
  td.Start();
  }

  private void GetRandomValue(int m)
  {
  if (InvokeRequired)
  {
  MyDelegate del = new MyDelegate(GetRandomValue);
  this.Invoke(del, m);
  }
  else
  {
  textBox1.Text += m.ToString() + " + ";
  }
  }

  private void ThreadDoWork(object obj)
  {
  for (int m = 0; m <= 100; m++)
  {
  ShowProgress(progressBar1, m);
  Thread.Sleep(100);
  GetRandomValue(m);
  }
  }

  private void ShowProgress(ProgressBar p, int i)
  {
  if (InvokeRequired)
  {
  MyDelegate1 del = new MyDelegate1(ShowProgress);
  this.Invoke(del, p, i);
  }
  else
  p.Value = i;
  }


------解决方案--------------------
顶起
估计你的机器爬不动了
------解决方案--------------------
清理解决方案,重新编译。
------解决方案--------------------
stopwatch方法执行时间
重新生成编译