如何设置在.NET中使用ThreadPool并发运行的最大线程数

时间:2016-04-25 05:38:48

标签: .net queue threadpool

我需要并行执行固定数量的Threads,比如5,并对所有剩余的Thread进行排队。这是我试过的一段代码。

ThreadPool.SetMaxThreads(5, 0);

ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), task1);
            Thread.Sleep(1000);//'ThreadProc' is the callback function

现在,当我尝试运行时,并行地说7个线程然后它同时运行所有线程而不是运行5个线程并排队接下来的2个线程。我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

如果你可以使用Parallel with For / ForEach,那么你有ParallelOptions.MaxDegreeOfParallelism这将限制并发操作的数量。