首頁 >後端開發 >C++ >Parallel.ForEach 如何提升迴圈的效能?

Parallel.ForEach 如何提升迴圈的效能?

Linda Hamilton
Linda Hamilton原創
2025-01-04 15:32:40785瀏覽

How Can Parallel.ForEach Improve the Performance of My Loops?

Parallel.ForEach:並發提升

了解Parallel.ForEach

Parallel.ForEach 是.NET 4.0 中引入的一項強大功能,它引入的一項強大功能允許您跨多個線程同時執行循環。它為可並行化的操作提供了顯著的效能提升。

與 foreach 迴圈的主要差異:

  • 執行: 並行。 ForEach 並行運行迭代,而 foreach 迴圈執行
  • 執行緒:Parallel.ForEach 使用多個執行緒來最大化並發性,而 foreach 迴圈使用單一執行緒。
  • 效能:長時間- 運行或密集操作,Parallel.ForEach 可以透過同時運行它們來加快執行速度。然而,對於短或簡單的操作,它可能會引入執行緒建立和管理的開銷。

將foreach 循環轉換為Parallel.ForEach

使用Parallel.ForEach 重寫提供的foreach 循環,我們需要:

  1. 建立一個委託或lambda 表達式來定義要執行的操作
  2. 調用Parallel.ForEach 方法,傳遞資料集合(行)和委託。

這是一個範例:

string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);

Parallel.ForEach(list_lines, line =>
{
    // Perform your operation here (e.g., data processing)
});

透過使用Parallel.ForEach,我們使循環能夠並行運行每行上的操作,如果操作是很費時間。

以上是Parallel.ForEach 如何提升迴圈的效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn