多线程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 泰坦尼克号上的活龙虾 阅读(62) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库