Parallel.For 并发控制

发布时间 2023-12-15 11:16:00作者: trykle

普通并发

Parallel.For(1, 500, new ParallelOptions() { MaxDegreeOfParallelism = 2 }, i =>
{
    Console.WriteLine(i);
    Thread.Sleep(2000);
});

异步并发

此时,内部并不会等待方法执行完成,并发数量失效

Parallel.For(1, 500, new ParallelOptions() { MaxDegreeOfParallelism = 2 }, async i =>
{
    Console.WriteLine(i);
    await Task.Delay(2000);
});

可以在里面再套一层

 Parallel.For(0, 500, new ParallelOptions { MaxDegreeOfParallelism = 2 }, i =>
 {
     Task.Run(async () =>
     {
         Console.WriteLine(i);
         await Task.Delay(2000);
     }).Wait();
 });