Parallel.ForEach是一個多線程并行循環的方法,它可以使用多個線程同時迭代一個集合或數組,并在每個迭代點上執行指定的操作。
使用Parallel.ForEach可以加快循環的執行速度,特別是當循環中的操作是獨立的,并且不需要互相等待的情況下。它可以根據系統的處理器核心數量自動創建線程,并將任務分配給這些線程進行并行執行。
下面是一個使用Parallel.ForEach的示例:
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 創建一個包含整數的數組
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 使用Parallel.ForEach并行遍歷數組
Parallel.ForEach(numbers, (number) =>
{
Console.WriteLine(number);
});
Console.ReadLine();
}
}
在上面的示例中,我們創建了一個包含10個整數的數組numbers。然后,我們使用Parallel.ForEach來并行遍歷這個數組,對每個元素執行一個簡單的打印操作。
在運行程序時,我們可以看到數組中的每個元素都會在不同的線程上被并行處理和打印出來。
需要注意的是,Parallel.ForEach方法是一個阻塞方法,也就是說它會等待所有的并行任務完成后才會繼續執行后續的代碼。如果需要在并行操作完成后執行一些后續操作,可以在Parallel.ForEach方法的外部使用Task.WaitAll方法來等待所有的任務完成。
總的來說,Parallel.ForEach是一個很方便的方法,可以使循環迭代變得更加高效和快速。但是需要注意的是,并行操作可能會引起線程安全的問題,需要確保在并行操作中不會對共享數據進行無序訪問和修改。