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