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