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

c#
1040
2024/1/7 5:33:49
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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类来设置并行选项,例如设置最大并行度和取消标记等。
  • 并行循环的执行顺序是不确定的,因此循环体委托应该是无副作用的。
  • 并行循环适用于大规模的循环,对于小规模的循环可能会引入额外的开销。在选择使用并行循环时,需要根据具体情况进行权衡和测试。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c#中tostring方法有什么用