增加c# For循环的线程数
本文关键字:线程 循环 For 增加 | 更新日期: 2023-09-27 18:17:13
我希望能够在for循环中使用更多的线程。
为什么呢?因为每个循环都在运行进程,它需要等待退出。目前,它似乎甚至没有接近100%我的CPU,看看性能,大部分的东西是从等待进程。
我的代码现在差不多是这样的:
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();
}
也许你的意思是
Parallel
.For(0, 10, new ParallelOptions() {MaxDegreeOfParallelism = 10},
i =>{ Console.WriteLine(Thread.CurrentThread.ManagedThreadId); });
,但注意,这不是线程数。更多信息在这里https://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions.maxdegreeofparallelism%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396