多线程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   泰坦尼克号上的活龙虾  阅读(62)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示