我用for循环启动了10个线程,但是实际运行却只执行了一部分,有时候能全部执行,请问怎样才能使它们全部执行?
这是代码:
                    for (int i = 0; i < int_ThreadCount; i++)
                  {
                      th = new Thread(new ParameterizedThreadStart(Process));
                      th.Name = "th_" + i.ToString();
                      th.Start(i);
                  }

解决方案 »

  1.   

    int_ThreadCount //自定义线程数
      

  2.   

    实践证明,用Join()方法,线程就会顺序执行,效率也非常高,我做的程序是服务器文件处理程序,一个文件大概6,7万条数据,开20个线程,一分钟搞定;相比单线程就快多了,以前我用单线程,6万条数据必须得100分钟才能处理完
      

  3.   

    象你这种问题,单CPU的机器,多线程不会提高程序的执行效率。
    多CPU的机器,如果线程是顺序执行(一个线程执行完后再执行另外一个),同样不会提高效率。如果不是顺序执行,不知道你的问题究竟在哪里?
    如果如你所言,处理速度确实提高了,一般而言,还有其他一些因素存在的。
    多线程,很多时候是为了让程序完成一个耗时较长的操作(如你这个)或阻塞性的操作(网络,IO)的同时不至于让用户界面失去响应。运用不好的情况下,多线程的效率反而不如单线程。
      

  4.   

    按顺序执行线程我想应该需要用InterLocked这类来控制