Почему у ContinueWhenAll и ContinueWhenAny есть неподдерживаемые TaskContinuationOptions? - PullRequest
2 голосов
/ 06 февраля 2012

Когда я просматриваю документацию по MSDN и другим книгам, я вижу, что обе функции имеют перегрузку, которая принимает TaskContinuationOption.Но они могут выдать исключение в соответствии с этим утверждением:

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

Кажется, что они позволяют толькоTaskContinuationOptions.AttachedToParent, LongRunning, PreferFairness, ExecuteSynchronously и None, аналогично перечислению TaskCreationOption.

Почему это так?

1 Ответ

3 голосов
/ 06 февраля 2012

Ну, недопустимые значения NotOn * и OnlyOn * TaskContinueOption описывают опцию продолжения для одиночной задачи. Что не сработает, методы ContinueWhenAll () и ContinueWhenAny () работают с набором задач. Внутренний метод, который проверяет параметры и генерирует исключение ArgumentOutOfRange, называется «CheckMultiTaskContinuationOptions», акцент на MultiTask .

...