Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Непонятно с async-await в C# - 2

31.08.21 11:03
Re: Непонятно с async-await в C# - 2
 
alex445 свой человек
в ответ alex445 31.08.21 10:56, Последний раз изменено 31.08.21 11:18 (alex445)

Когда бы ни закончились ожидаемые таски, код между ними всегда выполняется в том порядке, как написан


after wait1

after wait2

after wait3


Причём первая строка выполняется лишь после того, как закончится таска, ожидаемая перед этой первой строкой, независимо от того, закончились ли последующие таски.

Я тут вообще логики не вижу.


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


Т. е. либо надо обязательно использовать ContinueWith, либо WhenAll, WhenAny и т.п. вспомогательные методы. Тот поток выполнения, что в вышеприведённом примере - нихрена не логичен.

 

Перейти на