我用for循环启动了10个线程,但是实际运行却只执行了一部分,有时候能全部执行,请问怎样才能使它们全部执行?
这是代码:
for (int i = 0; i < int_ThreadCount; i++)
{
th = new Thread(new ParameterizedThreadStart(Process));
th.Name = "th_" + i.ToString();
th.Start(i);
}
这是代码:
for (int i = 0; i < int_ThreadCount; i++)
{
th = new Thread(new ParameterizedThreadStart(Process));
th.Name = "th_" + i.ToString();
th.Start(i);
}
多CPU的机器,如果线程是顺序执行(一个线程执行完后再执行另外一个),同样不会提高效率。如果不是顺序执行,不知道你的问题究竟在哪里?
如果如你所言,处理速度确实提高了,一般而言,还有其他一些因素存在的。
多线程,很多时候是为了让程序完成一个耗时较长的操作(如你这个)或阻塞性的操作(网络,IO)的同时不至于让用户界面失去响应。运用不好的情况下,多线程的效率反而不如单线程。