温馨提示×

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

c#
小亿
219
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