c#多线程-任务并行Parallel使用

ParallelLoopResult loopR= Parallel.For(0, 10, async i => {
                await Task.Delay(1);
                PrintX(i);
            });

//其他业务代码

关键字async  await可以实现任务不阻塞主线程  其他业务代码可以继续往下执行

 private static Int32 baseCount = 10;
 private static Int32 minCount = 0;
        private static void PrintX(int x)
        {
            lock (obj)
            {
                if (baseCount > 0)
                {
                    baseCount = baseCount - 1;
                    Task.Delay(10).Wait();
                    minCount += 1;
                }
            }
            Console.WriteLine($"X:{x} baseCount:{baseCount} minCount{minCount} Task{Task.CurrentId}");
        }

发布了15 篇原创文章 · 获赞 3 · 访问量 9543

猜你喜欢

转载自blog.csdn.net/weixin_38660590/article/details/85268352