Re[5]: Объясните поведение ContinueWith(..., TaskContinuationOptions.ExecuteSync
От: Sinix  
Дата: 02.01.17 21:27
Оценка:
Здравствуйте, AK107, Вы писали:

S>> WhenAll() добавляет себя как ContinueWith к задачам-аргументам, поэтому WhenAll выполнится не раньше, чем запустятся предыдущие добавленные продолжения.

AK>да, оно! поизучавши исходники net.core пришел к тому же
Вообще, закладываться на такое поведение опасно, т.к. это просто побочный эффект реализации и никто не запрещает .WhenAll добавляться в начало списка продолжений. Лично я бы переписал код на await-ах или сохранял бы в список запущенные задачи. Все прочие варианты (включая AttachedToParent) ненадёжны.


P.S. исходники удобнее смотреть на https://referencesource.microsoft.com/ или https://source.dot.net/ .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.