[英]how to add a Cancellation Token to a Task?
我將被介紹給Task,並且到此為止:
在主要:
Task<double> t = Task.Run(TW.DoingMegaFlops_Async);
TW班級:
public async Task<double> DoingMegaFlops_Async()
{...await ...; return 0.0;}
我的概念控制台應用程序可以正常構建和運行。 問題是如何使用Cancellation Token
來擴展它。 我嘗試了這個:
CancellationTokenSource wtokenSource= new CancellationTokenSource();
Task.Run(TW.DoingMegaFlops_Async(wtokenSource.Token), wtokenSource.Token);
在TW類中:
public async void DoingMegaFlops_Async(CancellationToken wtoken)
{...await...; return;}
Main中的生成錯誤是:
Cannot convert from 'void' to 'System.Action'
我已經愚弄了對(Action)的轉換,但無濟於事。 實際上,我不太了解自己在這里做什么,因此想向論壇學習。
從代碼片段中可以看到,我已經通過返回void類型來縮減Async方法的接口。 不知道這是否真的使事情變得容易。
Task.Run(TW.DoingMegaFlops_Async)
是Task.Run(() => TW.DoingMegaFlops_Async())
“方法組”的簡寫-之所以允許,是因為您正在調用沒有參數的方法。
但是,在調用帶有參數的方法時,必須包括它:
Task.Run(() => TW.DoingMegaFlops_Async(wtokenSource.Token), wtokenSource.Token);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.