Task 是從 .NET 4.0 開始就有的東西,用它來取代傳統的 Thread、ThreadPool 還挺便捷的,但有時候有一些有時效性的 Task,當它執行超過我們規定的時間時我們需要知道,Task.Wait()
可以帶入 millisecondsTimeout
參數,不過它是同步的。
Task.Wait() 預設會 Lock 當前的 Thread,如果希望是非同步的話,需要額外加一點 Code。
Task.WhenAny()
從 StackOverflow 找到的另一個解法是用 Task.WhenAny() 這個方法,給入的參數是一個 Task 陣列,當陣列中的任一 Task 執行完畢,則回傳該 Task。