Выполнение ContinueWith, когда другие продолжения не выполнены

Учитывая что-то вроде этого:

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

Есть ли способ построить продолжение, которое выполнит AnythingElse когда другие продолжения не выполнены?

Я хочу перехватить все другие возможные завершения, но только если одно из первых двух продолжений выше не выполнено.

1 ответ

Решение

Использование OnlyOnCancelled потому что это единственный другой случай.

Вы также можете использовать одно унифицированное продолжение и решить, что делать в зависимости от состояния задачи. Я думаю, что это самый чистый способ, потому что он приводит к последовательному виду кода.

Другие вопросы по тегам