Şaf*_*Gür 5 c# asynchronous task-parallel-library
我的类有一个Task<int>使用a 生成对象的方法TaskCompletionSource<int>.然后它执行一些异步操作并设置结果.我需要知道我是否可以信任任务的ContinueWith方法:
public Task<int> CalculateAsync()
{
var source = new TaskCompletionSource();
DoSomeAsyncStuffAndSetResultOf(source);
source.Task.ContinueWith(t => Console.WriteLine("Is this reliable?"));
return source.Task;
}
Run Code Online (Sandbox Code Playgroud)
CalculateAsync方法的调用者可以对生成的任务执行某些操作并阻止其继续运行吗?
您可以将 a 传递到 ...CancellationToken的各种重载中ContinueWith,这将是取消延续的最惯用的方法,IMO。
我认为您无法对父任务执行任何操作来取消延续。无论如何,我希望不会……
编辑:好吧,听起来你正在努力不让这种情况发生。不,你不需要担心。除非调用者能够以某种方式使任务永远运行而不会完成、被取消或出错,否则延续将运行。