多线程1:Task基本概念
------------恢复内容开始------------
Task默认使用线程池,也就是我们常说的后台线程:即 当主线程结束,那么创建的tasks任务都会随之结束
如何理解上边的话?我们用一个简单的例子来说明一下:(如下
static void Main(string[] args) { Task.Run(()=>Console.WriteLine("我是Task")); }
如上代码:点击运行后,控制台并不会打印出 我是Task 这句话,而是什么都不会打印;原因就是因为,他会随着主线程的结束而结束;
如果想要执行他,那么就阻塞一下他 Thread.Sleep(1000); 加上阻塞之后,这句话就打印出来了!
Task task = Task.Run(()=> { Thread.Sleep(2000); Console.WriteLine("我是Task"); }); Console.WriteLine(task.IsCompleted);//这里的结果 是 false; task.Wait(); //阻塞一下,直至 任务完成 Console.WriteLine(task.IsCompleted);//这里由于阻塞了一会, 任务已经 完成 所以结果会是true;
上边的代码说明了,Task这个类中有很多方法可以操作线程任务:如 wait() 阻塞方法;IsCompleted 是否完成的属性等
------------恢复内容结束------------
posted on 2022-05-26 15:33 泰坦尼克号上的活龙虾 阅读(73) 评论(0) 收藏 举报