在具有资源约束的 Parallel.ForEach() 中管理并发任务
在使用并行循环时,其中各个操作受到资源限制(例如网络带宽或 API 速率限制),控制并发级别至关重要。 Parallel.ForEach()
方法与 ParallelOptions
类结合使用,提供了一个简单的解决方案。
ParallelOptions
类提供 MaxDegreeOfParallelism
属性,该属性设置允许并发执行的最大线程数。 这有效地限制了同时操作的数量,防止资源过载。
考虑一个网络抓取场景,其中网络带宽将并发下载限制为一次四个。 以下代码片段演示了如何强制执行此限制:
<code class="language-csharp">Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { DownloadWebpage(webpage); } );</code>
将 MaxDegreeOfParallelism
设置为 4 可确保最多四个线程同时下载网页,从而遵守带宽限制。
进一步阅读:
以上是如何限制 Parallel.ForEach() 中的并行性以进行节流操作?的详细内容。更多信息请关注PHP中文网其他相关文章!