Выполнение ContinueWith, когда другие продолжения не выполнены
Учитывая что-то вроде этого:
.ContinueWith((_, o) => this.Foo(), null, TaskContinuationOptions.OnlyOnRanToCompletion)
.ContinueWith((_, o) => this.Bar(), null, TaskContinuationOptions.OnlyOnFaulted)
.ContinueWith((_, o) => this.AnythingElse(), null, TaskContinuationOptions.?
Есть ли способ построить продолжение, которое выполнит AnythingElse
когда другие продолжения не выполнены?
Я хочу перехватить все другие возможные завершения, но только если одно из первых двух продолжений выше не выполнено.
1 ответ
Решение
Использование OnlyOnCancelled
потому что это единственный другой случай.
Вы также можете использовать одно унифицированное продолжение и решить, что делать в зависимости от состояния задачи. Я думаю, что это самый чистый способ, потому что он приводит к последовательному виду кода.