viod duo()
{
  ...
}private void StartPause(object sender, System.EventArgs e)
{
   int _ThreadNum = threadCount; 
   for(int i=0;i<_ThreadNum;i++)
     {  
      Thread[] mythread = new Thread [ _ThreadNum ] ; 
      mythread[i] = new Thread(new  ThreadStart(duo));
      t.Start();
    } 
       
}
问题一:上面的,用多个线程去执行同一个函数duo();是错误的?
问题二:用多个线程去执行,duo();是不是可以提升执行的速度?

解决方案 »

  1.   

    问题一: 有可能会,如果Duo方法不是是静态(static) 修饰的。每个线程都会有一份自己的对象实例去执行duo方法,不会冲突。如果Duo方法是是静态(static) 修饰的,线程都会去执行这个函数。问题二:不会提升什么速度。
      

  2.   

    to 问题一:上面的,用多个线程去执行同一个函数duo();是错误的?那要看你的函数duo中的资源是否可以多线成同时访问,如果不行的话,建议加lock,或者用mutex来控制。to 问题二:用多个线程去执行,duo();是不是可以提升执行的速度?用多个线程去执行duo()与提升执行的速度没有直接的关系
      

  3.   

    一:已很明白了,
    二:你可以用两个循环测试一下。一个输出1--100二个输出100-200
    把它们同时开始,你可以看到CPU在同一时间只能处理一个线程(不会同时输出两个)。。只不过多线程是交替使用而已
      

  4.   

    帮你顶一下,
    都说了,同意 Knight94(愚翁) 的。