1.Wait 用法 預設情況下,Task 是有線程池中的非同步線程執行,是否執行完成,可以通過Task的的屬性IsCompleted 來判斷, 如果想在子線程工作完成之後,在進行後續主線程工作可以通過調用task.Wait() 來等待線程完成,調用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); }
運行結果:
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); }
運行結果:
