C# 增加一次处理的后台工作人员数量
我正在写一个C#.NET软件,它产生了一群背景工作者。所有的工作人员立即进入“IsBusy”状态,然而,只有8名工作人员同时通过他们的DoWork方法进行处理 有没有办法增加每次跑步的次数 这是代码生成后台工作人员的方式:C# 增加一次处理的后台工作人员数量,c#,.net,backgroundworker,C#,.net,Backgroundworker,我正在写一个C#.NET软件,它产生了一群背景工作者。所有的工作人员立即进入“IsBusy”状态,然而,只有8名工作人员同时通过他们的DoWork方法进行处理 有没有办法增加每次跑步的次数 这是代码生成后台工作人员的方式: foreach (RESTObjectPrintFile t in printFilesList) { BackgroundWorker bgWorker = new BackgroundWorker(); bg
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);
还要检查这篇文章
底部写着:
默认值是每个核心一个线程
你能分享你的一段代码吗?哪个框架是ASP.NET核心还是辅助服务?也许是WPF项目?也许你有8个逻辑核。。很难说我能想象你有一台8核的机器吗?有没有办法增加每次跑步的次数?获得一个具有更多功能的CPUcores@Liam啊……我知道,是的。这是一个硬限制吗?使用1线程:1内核似乎有点奇怪?您可以使用async/Wait更有效地使用内核,但这取决于您的处理是CPU还是IO绑定。使用1线程:1内核似乎有点奇怪如果代码被阻塞,那么它将不会释放内核来做任何其他事情。是的,这允许更多的工作人员进入内核“DoWork”功能并开始处理。早期基准测试显示总体处理时间明显缩短