.NET 的平行程式設計

許多個人電腦和工作站都具有多個 CPU 核心,以便能夠同時執行多個執行緒。 若要利用硬體優勢,您可以將您的程式碼平行化,以便將工作分散到多個處理器。

在過去,平行化作業需要在低階操作執行緒和鎖定。 Visual Studio 和 .NET 可提供執行時間、類別庫類型和診斷工具,以加強平行程式設計的支援。 這些功能是在 .NET Framework 4 中引進,可簡化平行開發。 您能夠利用簡單常見的語法,撰寫效率高、精細且具彈性的平行程式碼,而不需要直接使用執行緒或執行緒集區。

下圖提供 .NET 中平行程式設計架構的高階總覽。

.NET 平行程式設計架構

技術 描述
工作平行程式庫 (TPL) 提供 System.Threading.Tasks.Parallel 類別 (包含平行版本的 ForForEach 迴圈) 及 System.Threading.Tasks.Task 類別 (表示表達非同步作業較好的方式) 的文件。
平行 LINQ (PLINQ) 平行實作的 LINQ to Objects,在許多情節中可大幅改善效能。
平行程式設計的資料結構 提供安全執行緒集合類別、輕量型同步處理類型和延遲初始設定類型的文件連結。
平行診斷工具 提供工作與平行堆疊的 Visual Studio 偵錯工具視窗文件連結,以及並行視覺化工具的連結。
PLINQ 和 TPL 的自訂 Partitioner 說明 Partitioner 的運作方式,以及如何設定預設 Partitioner 或建立新的 Partitioner。
工作排程器 說明排程器的運作方式以及如何設定預設排程器。
PLINQ 和 TPL 中的 Lambda 運算式 提供 C# 和 Visual Basic 中之 Lambda 運算式的簡短概觀,並且顯示如何在 PLINQ 和工作平行程式庫中使用這些運算式。
進一步閱讀 提供以 .NET 進行平行程式設計的額外資訊和範例資源連結。

請參閱