首页 > 代码库 > Task用法(2)-任务等待wait

Task用法(2)-任务等待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用法(2)-任务等待wait