【发布时间】:2020-04-09 10:29:58
【问题描述】:
我想限制最大线程数。我该怎么做?我知道我可以使用类似SetMaximum...如果我使用的是ThreadPool。
public async Task ProcessAsync()
{
while (true)
{
Task.Run(Work);
}
}
async Task Work()
{
// some time-consuming job
}
【问题讨论】:
-
while (true)会将Tasks 的数量限制为在某些操作系统资源或其他资源耗尽之前可以运行的数量。是否要限制启动的Tasks 的数量?for (i = 0; i < 10; i++)会这样做。或者您想限制同时运行的Tasks 的数量?核心数量,还是什么? (或者那个标签应该是.net-core?)
标签: c# .net-core async-await task-parallel-library threadpool