有没有办法修复任务计划运行的线程数?

时间:2011-08-19 21:29:08

标签: c# multithreading task-parallel-library

假设我创建了3个线程,但希望在它们上运行4个任务。有没有办法修复任务运行的线程数?感谢。

3 个答案:

答案 0 :(得分:1)

使用“任务”(TPL)时,不会创建“线程”。

Parallel类中的几乎所有方法都允许您指定WithDegreeOfParallelism(n)

有关详细信息,请参阅Setting the cores to use in Parallelism

答案 1 :(得分:1)

您还可以创建自己的TaskScheduler ... ,如果您确实需要。从您的问题来看,不确定您的特定用例是什么。有关详细信息,请参阅MSDN上的this链接。

答案 2 :(得分:0)

在TPL中,您不创建线程,只创建任务,如果您使用的是默认调度程序,它将在后端使用Threadpool,默认情况下最大线程数为2 *核心数。 如果您要管理线程创建,可以通过从TaskScheduler驱动来创建自己的自定义sccheduler,此MSDN页面显示如何实现限制并发度的自定义调度程序http://msdn.microsoft.com/en-us/library/ee789351.aspx