我需要并行执行固定数量的Threads,比如5,并对所有剩余的Thread进行排队。这是我试过的一段代码。
ThreadPool.SetMaxThreads(5, 0);
ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), task1);
Thread.Sleep(1000);//'ThreadProc' is the callback function
现在,当我尝试运行时,并行地说7个线程然后它同时运行所有线程而不是运行5个线程并排队接下来的2个线程。我如何实现这一目标?
答案 0 :(得分:0)
如果你可以使用Parallel with For / ForEach,那么你有ParallelOptions.MaxDegreeOfParallelism
这将限制并发操作的数量。