多线程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)    收藏  举报

导航