Как стать автором
Обновить

Комментарии 6

Хороший материал…
Debug с async иногда глючит. У меня был проект на MVC.
В IIS работал, а с Debug зависал. Поменял async, все прошло.

Что? Лучшие практики? А мне больше вот этот доклад на DotNext нравится: Yield и async-await: как оно все устроено внутри и как этим воспользоваться. Там, конечно, своеобразная наркомания от участника ICFP Contest, и такие «лучшие практики» не для всех, зато бодрит — будь здоров :)

Толсто, Игорь, толсто!

Это классический deadlock. На UI-потоке подождали десять секунд и сделали Wait. Из-за того, что вы сделали Wait, continuationCode никогда не будет запущен, соответственно, Wait никогда не вернется.


В этом примере нет deadlock. Спасает как раз ConfigureAwait(false). И метод Task.Delay принимает не секунды, а милисекунды (так что ждать 10 секунд этот код точно не будет).

Функция называется с большой буквы (MyFuncAsync), но вызывается почему-то совершенно другая (myFuncAsync().Wait()). Конкретно этот пример кода очень низкого качества в нем неправильно всё.

Чтобы здесь все-таки был дедлок надо убрать ConfigureAwait(false)
континуация

Однако! Впервые слышу. Может, лучше «продолжение»?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий