1. 程式人生 > >Task用法(2)-任務等待wait

Task用法(2)-任務等待wait

ges tel csharp 子線程 png ted 線程池 rgs 異步

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