[食譜小菜] 如何知道一個 Task 執行逾時?

  • 3207
  • 0
  • C#
  • 2018-05-11

Task 是從 .NET 4.0 開始就有的東西,用它來取代傳統的 Thread、ThreadPool 還挺便捷的,但有時候有一些有時效性的 Task,當它執行超過我們規定的時間時我們需要知道,Task.Wait() 可以帶入 millisecondsTimeout 參數,不過它是同步的。

Task.Wait() 預設會 Lock 當前的 Thread,如果希望是非同步的話,需要額外加一點 Code。

Task.WhenAny()

從 StackOverflow 找到的另一個解法是用 Task.WhenAny() 這個方法,給入的參數是一個 Task 陣列,當陣列中的任一 Task 執行完畢,則回傳該 Task。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學