具有取消功能的非同步作業參考範例

利用cancellationtokensource 和 cancellationtoken 類別

執行非同步作業
private async Task TryTask()
{
   CancellationTokenSource source = new CancellationTokenSource();
   source.CancelAfter(TimeSpan.FromSeconds(1)) ;
   Task<int> task = Task.Run(() => slowFunc(1, 2, source.Token), source.Token);
   await task;
}

定義欲以非同步方式執行的工作
private int slowFunc(int a, int b, CancellationToken cancellationToken)
{
   for (int i = 0;  i < 20000; i++))
      cancellationToken.ThrowIfCancellationRequested();
   return a + b;

}




留言

這個網誌中的熱門文章

[C#]Windows 10 停用與啟用網路卡(連線)[手把手教程][原創]

ASP.NET Web API 將傳回的值轉換從控制器動作至 HTTP 回應訊息的方式。

[C#]程式更改電腦IP位置與電腦名稱