我正在编写一个 C# .NET 软件,它会产生一堆后台工作者。所有工人立即进入“IsBusy”状态,然而,只有 8 个工人同时通过他们的 DoWork 方法进行处理。
有没有办法增加一次运行的次数?
这是代码如何产生后台工作人员:
foreach (RESTObjectPrintFile t in printFilesList)
{
BackgroundWorker bgWorker = new BackgroundWorker();
bgWorker.DoWork += BgWorker_DoWork;
bgWorker.RunWorkerCompleted += BgWorker_RunWorkerCompleted;
bgWorkerList.Add(bgWorker);
bgWorker.RunWorkerAsync(t);
}
答案 0 :(得分:1)
试试下面的方法
ThreadPool.SetMinThreads(20, 20);
另请查看这篇文章 http://www.albahari.com/threading/#_Optimizing_the_Thread_Pool
底部写着:
<块引用>默认值为每核一个线程。