5
我的班級有一種使用TaskCompletionSource<int>
產生Task<int>
對象的方法。然後它執行一些異步操作並設置結果。我需要知道我是否可以信任任務的ContinueWith
方法或不:如何取消任務的繼續?
public Task<int> CalculateAsync()
{
var source = new TaskCompletionSource();
DoSomeAsyncStuffAndSetResultOf(source);
source.Task.ContinueWith(t => Console.WriteLine("Is this reliable?"));
return source.Task;
}
CalculateAsync
方法的調用者可以做一些與生產任務,並防止其繼續運行?
哦,我明白了 - 不,延續會一直運行(假設調用者不能強迫任務永遠運行,永遠不會完成)。 –
我看到您的修改後刪除了評論。如果他在設置任務結果之前調用Dispose,該怎麼辦? –
@ŞafakGür:根據Task.Dispose的文檔,這將引發InvalidOperationException。 –