点击此进入C#/.NET异步编程【目录】
Parallel用于并行编程,它是在Task的基础上做了封装 4.5
1、Parallel.Invoke 主要用于任务的并行
这个函数的功能和Task有些相似,就是并发执行一系列任务,然后等待所有完成。和Task比起来,省略了Task.WaitAll这一步。它有两种形式:
Parallel.Invoke( params Action[] actions);
Parallel.Invoke(Action[] actions,TaskManager manager,TaskCreationOptions options);
/// <summary>
/// 尽可能并行执行多个任务
/// </summary>
public void StartManyTask()
{
Parallel.Invoke(
() => { },
() => { },
() => { });
}
2、Parallel.ForEach并行循环迭代运行
/// <summary>
/// 并行循环迭代运行
/// </summary>
public void CycleStartTask()
{
Parallel.For(0, 5, i => { });
Parallel.ForEach(new string[] { "0", "1", "2", "3", "4" }, i => { });
}
3、ParallelOptions 可以控制并发数量
public void LimitThreadCount()
{
int maxCount = 5;
//parallelOptions 可以控制并发数量
ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = maxCount;
Parallel.For(0, 10, parallelOptions, i => { });
}