C# Parallel用法
在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作。
Parallel主要提供了3个有用的方法:For、ForEach、Invoke。 For方法,主要用于处理针对数组元素的并行操作,如下:
static void Main(string[] args)
{
int[] nums = new int[] { 1, 2, 3, 4 };
Parallel.For(0, nums.Length, (i) =>
{
Console.WriteLine("针对数组索引{0}对应的那个元素{1}的一些工作代码……",i, nums[i]); });
Console.ReadKey();
}
}
输出为:
针对数组索引0对应的那个元素1的一些工作代码……
针对数组索引2对应的那个元素3的一些工作代码……
针对数组索引1对应的那个元素2的一些工作代码……
针对数组索引3对应的那个元素4的一些工作代码……
可以看到,工作代码并不按照数组的索引次序进行遍历。显而易见,这是因为我们的遍历是并行的,不是顺序的。
所以这里也可以引出一个小建议:如果我们的输出必须是同步的或者说必须是顺序输出的,则不应使用Parallel的方式.
Parallel的Foreach()同上。。。