押注网站建设,搜狗搜索网页版,上海优化公司排行榜,查询网站到期时间写在前面
使用Task类来控制多线程的同步执行#xff0c;可应用于多任务分发执行后#xff0c;再做归并处理。Tas既拥有线程池的优点#xff0c;同时也解决了使用ThreadPool不易控制的弊端#xff1b;可以非常简便并可靠地实现多线程的顺序执行。
代码实现
public class …写在前面
使用Task类来控制多线程的同步执行可应用于多任务分发执行后再做归并处理。Tas既拥有线程池的优点同时也解决了使用ThreadPool不易控制的弊端可以非常简便并可靠地实现多线程的顺序执行。
代码实现
public class ThreadTester
{public static void ThreadTest01(){ var task01 new Task(() {Thread.Sleep(1000);Console.WriteLine(task01 执行完成);});// 以同步方式执行task01.RunSynchronously();Console.WriteLine(第一阶段主线程执行完成);var task02 new Task(() {Thread.Sleep(1300);Console.WriteLine(task02 执行完成);});task02.Start();var task03 new Task(() {Thread.Sleep(800);Console.WriteLine(task03 执行完成);});task03.Start();// 执行等待以保证同步task02.Wait();task03.Wait();Console.WriteLine(第二阶段主线程执行完成);var task04 new Task(() {Thread.Sleep(1500);Console.WriteLine(task04 执行完成);});task04.Start();var task05 new Task(() {Thread.Sleep(600);Console.WriteLine(task05 执行完成);});task05.Start();// 执行等待以保证同步Task.WaitAll(new Task[] { task04, task05 });Console.WriteLine(第三阶段主线程执行完成);var task06 new Task(() {Thread.Sleep(1200);Console.WriteLine(task06 执行完成);});task06.Start();var task07 new Task(() {Thread.Sleep(100);Console.WriteLine(task07 执行完成);});task07.Start();// 全部完成后再执行Task.WhenAll(new Task[] { task06, task07 }).ContinueWith((t) {Thread.Sleep(200);Console.WriteLine(第四阶段最后完成);});Console.WriteLine(第四阶段主线程执行完成);Console.ReadKey();}}
执行结果