溫馨提示×

C#中如何使用Parallel.For和Parallel.ForEach

c#
小億
294
2023-12-19 05:33:49
欄目: 編程語言

在C#中,可以使用Parallel.For和Parallel.ForEach方法來實現并行循環。

Parallel.For方法用于并行執行一個范圍的循環。它接受四個參數:循環起始值、循環結束值、并行選項和循環體委托。下面是一個使用Parallel.For的示例:

Parallel.For(0, 10, i =>
{
    Console.WriteLine("Parallel.For loop: " + i);
});

上述代碼會并行執行從0到9的循環,并輸出每個循環迭代的值。

Parallel.ForEach方法用于并行執行一個集合的循環。它接受兩個參數:要循環的集合和循環體委托。下面是一個使用Parallel.ForEach的示例:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

Parallel.ForEach(numbers, number =>
{
    Console.WriteLine("Parallel.ForEach loop: " + number);
});

上述代碼會并行執行numbers集合的循環,并輸出每個元素的值。

在使用Parallel.For和Parallel.ForEach時,需要注意以下幾點:

  • 循環體委托應該是線程安全的,以避免競態條件和其他并發問題。
  • 可以使用ParallelOptions類來設置并行選項,例如設置最大并行度和取消標記等。
  • 并行循環的執行順序是不確定的,因此循環體委托應該是無副作用的。
  • 并行循環適用于大規模的循環,對于小規模的循環可能會引入額外的開銷。在選擇使用并行循環時,需要根據具體情況進行權衡和測試。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女