使用C# 限制訊息處理中的最大並行度
並行處理大量項目時,通常需要控制最大數量可以同時運行的任務。這有助於優化資源利用率並防止系統不堪重負。
使用提供的範例程式碼(循環遍歷 1,000 個輸入訊息的集合並為每個訊息啟動一個任務),很難預測將要發送的訊息的確切數量。並行處理。然而,在典型的四核心處理器上,可能會同時處理多個訊息。
限制最大並行度
限制一次處理的最大訊息數,可以使用帶有 MaxDegreeOfParallelism 選項的 Parallel.ForEach 方法。此選項指定可用於平行執行的最大執行緒數。例如,下面的程式碼將並行任務的數量限制為10:
維護序列
在上面的程式碼中,訊息不一定會被處理與它們在集合中出現的順序相同。為了確保嚴格的順序,可以使用AsParallel 擴充方法:
在此程式碼中,Parallel.For 方法建立一個循環,並行迭代集合,但在每次迭代中,訊息是已處理的內容是按順序存取的。
以上是在 C# 中處理訊息時如何限制並行度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!