Task用法-任务等待wait

Posted lance的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Task用法-任务等待wait相关的知识,希望对你有一定的参考价值。

1.Wait 用法
 
默认情况下,Task 是有线程池中的异步线程执行,是否执行完成,可以通过Task的的属性IsCompleted 来判断, 
如果想在子线程工作完成之后,在进行后续主线程工作可以通过调用task.Wait() 来等待线程完成,调用Wait 后,当前线程会被阻塞,直到到子线程完成。
代码示例:
 static void Main(string[] args)
        {
            Task t = Task.Run(() =>
              {
                  Thread.Sleep(500);
                  Console.WriteLine("Lance");
                  Thread.Sleep(500);
              });
            Console.WriteLine("t.IsCompleted=" + t.IsCompleted);
            t.Wait();
            Console.WriteLine("t.IsCompleted=" + t.IsCompleted);
        }

 

运行结果: 

 

2.Wait 设定等待时间
 static void Main(string[] args)
        {
            Task t = Task.Run(() =>
              {
                  Thread.Sleep(500);
                  Console.WriteLine("Lance");
                  Thread.Sleep(500);
              });
            Console.WriteLine("t.IsCompleted=" + t.IsCompleted);
            bool IsComplate= t.Wait(200);
            Console.WriteLine("wait 200毫秒后 t.IsCompleted=" + t.IsCompleted);
            Thread.Sleep(1000);
            Console.WriteLine("t.IsCompleted=" + t.IsCompleted);
        }

  

运行结果:

 

 

以上是关于Task用法-任务等待wait的主要内容,如果未能解决你的问题,请参考以下文章

c#_Task用法总结

Thread.Sleep(2500) 与 Task.Delay(2500).Wait()

线程 task pritce

等待 Task.Delay() 与 Task.Delay().Wait()

27.5 任务

为啥不等待 Task.Run() 同步回 UI 线程/原始上下文?