当其他延续没有执行时执行ContinueWith

时间:2015-10-05 10:11:39

标签: c# asynchronous async-await continuations

考虑到这样的事情:

.ContinueWith((_, o) => this.Foo(), null, TaskContinuationOptions.OnlyOnRanToCompletion)
.ContinueWith((_, o) => this.Bar(), null, TaskContinuationOptions.OnlyOnFaulted)
.ContinueWith((_, o) => this.AnythingElse(), null, TaskContinuationOptions.?

有没有办法构建一个在没有执行其他延续时执行AnythingElse的延续?

我想要捕获所有其他可能的终止,但前提是前面两个延续中的一个尚未执行。

1 个答案:

答案 0 :(得分:0)

使用OnlyOnCancelled,因为这是唯一的另一种情况。

您还可以使用一个统一的延续,并根据任务状态决定做什么。我认为这是最干净的方式,因为它会产生连续的代码。