c# - 一次增加后台工作人员处理的数量
问题描述
我正在编写一个 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);
}
解决方案
尝试以下
ThreadPool.SetMinThreads(20, 20);
另请查看这篇文章 http://www.albahari.com/threading/#_Optimizing_the_Thread_Pool
在底部它说:
默认值为每个内核一个线程。
推荐阅读
- javascript - 如何迭代地在每个 SVG 元素旁边添加文本
- java - 根据传入的值获取连续值
- r - Using mutate with a stored list of formulas over specified columns
- sql - 如何调整我的 Oracle SQL 查询以更快地运行?
- flutter - Crashlytics 控制台未显示崩溃
- c++ - 如何在 C++ 中设置未定义值的条件?
- android - 如何使用 Kotlin 更改 ID?
- antlr - grun 无法识别 ANTLR4 Unicode 解析
- reactjs - 为什么我的字段在 handleChange 中不同?
- wordpress - 如何在 woocommerce 中向此函数添加父类