簡體   English   中英

如何向任務添加取消令牌?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM