我希望能够在for循环中使用更多线程。
为什么因为每个循环都在运行proccess,它需要等待退出。 目前看起来我的CPU几乎没有接近100%,而且大部分内容都是等待这些过程。
我的代码现在非常像这样:
Parallel.For(0, count, i =>
{
........
});
之后所有内容都会同步,因此每次说出的线程数并不重要。 他们不需要在运行期间同步数据,也不需要在这方面自由运行。
感谢。
编辑:
好的,我试着寻找实际上让它变慢的东西。 由于某种原因它确实需要CPU, 它只是没有显示它,可能导致它被运行"控制台窗口主机"?
在这种情况下,限制确实是CPU,该死的-_-。 不过,为什么它不会显示为正常过程?
它基本上是:
using (Process pRocess = new Process())
{
pRocess .StartInfo.Filename = "somefile.exe";
work work and also, maybe more work.
pRocess.WaitForExit();
}
答案 0 :(得分:2)
也许你的意思是
Parallel
.For(0, 10, new ParallelOptions() {MaxDegreeOfParallelism = 10},
i =>{ Console.WriteLine(Thread.CurrentThread.ManagedThreadId); });