首頁 > 後端開發 > C++ > 在 .NET 中什麼時候應該使用 Parallel.ForEach 而不是 Foreach 迴圈?

在 .NET 中什麼時候應該使用 Parallel.ForEach 而不是 Foreach 迴圈?

Barbara Streisand
發布: 2025-01-03 21:28:45
原創
766 人瀏覽過

When Should I Use Parallel.ForEach Instead of a Foreach Loop in .NET?

使用Parallel.ForEach 進行並行化處理

在.NET 程式設計中,傳統的foreach 迴圈依序執行迭代,一次一個元素,使用單一線程。這種方法可能會導致涉及冗長或密集操作的任務處理速度變慢。

引入 Parallel.ForEach

Parallel.ForEach 方法允許利用多個執行緒進行並行處理。此方法同時運行迭代,將處理任務指派給可用執行緒。透過分配工作負載,Parallel.ForEach 可以顯著縮短執行時間,特別是對於緩慢或資料密集型進程。

但是,需要注意的是,Parallel.ForEach 可能並不總是更快。對於短或快速的進程,執行緒建立和管理所涉及的開銷可能超過效能優勢。

轉換為 Parallel.ForEach 的範例

請考慮使用以下程式碼foreach循環:

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

foreach (string line in list_lines)
{
    // Perform operations on each line
}
登入後複製

使用以下程式碼重寫此程式碼Parallel.ForEach:

Parallel.ForEach(list_lines, line =>
{
    // Perform operations on each line
});
登入後複製

在此範例中,Parallel.ForEach 方法將list_lines 集合作為每一行建立一個新執行緒來並行執行指定的操作。

Foreach 循環和 Parallel.ForEach 之間的主要區別

Feature Foreach Loop Parallel.ForEach
Iteration Style Sequential Parallel
Thread Usage Single Thread Multiple Threads
Framework Availability All .NET frameworks .NET 4.0 and newer
Overhead Low for quick processes Higher for quick processes due to thread creation and management
Performance Faster for short and quick processes Faster for lengthy and data-intensive processes

以上是在 .NET 中什麼時候應該使用 Parallel.ForEach 而不是 Foreach 迴圈?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板