在 Parallel.ForEach 中控制並發性
在平行程式設計中,並行運行循環可能很有益,允許多個執行緒同時執行獨立的任務。但是,當處理受限資源時,限制並行任務的數量以避免系統過載就變得至關重要。本文示範如何在 Parallel.ForEach 迴圈中限制並行度。
考慮這樣一種情況:您有一個 Parallel.ForEach 循環下載網頁。為了確保您的頻寬不會被壓垮,您希望限制同時下載的數量。傳統的網路爬蟲解決方案是不夠的,因為您的任務可能涉及不同類型的操作。
限制並行度
要控制 Parallel.ForEach 迴圈中使用的執行緒數,您可以使用 ParallelOptions 類別的 MaxDegreeOfParallelism 參數。此參數指定可以並行執行循環的最大執行緒數。
<code class="language-csharp">Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { Download(webpage); } );</code>
在此範例中,MaxDegreeOfParallelism 設定為 4,表示最多將使用四個執行緒同時下載網頁。這確保了您的頻寬不會超出限制,並防止了對資源的過度壓力。
更多資源
有關 Parallel.ForEach 的更多信息,請參閱 MSDN 文件:
透過控制 Parallel.ForEach 循環中的並行度,您可以有效地管理資源使用,並確保應用程式獲得最佳效能。
以上是如何限制 Parallel.ForEach 中的並行度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!