новый поток ? ну чтобы асинхронно подумать. Если так , то почему тут говорили что await Task.Ran(()=>Method();); не коректно ? вроде ж все жрут потоки из пула
Не всегда. Тут Method будет в новом потоке, потому что это заслуга Task.Run, а не await
В этом случаи понятно. А если просто await по например Task.Wait или как то так.
Зависит от того, есть ли контекст синхронизации, или вызван ли ConfigureAwaiter(false). Deadlock случается, когда вызывающий поток синхронно ждет асинхронный метод, а тот в своей очереди пытается продолжить выполнение на вызвовщем потоке
Кстати одна из причин почему стоит всегда писать configureawait в публичных нугет и своих шаренных либах
То есть, обобщить, если мы указали result в вызывающем потоке, и когда мы указываем на операции await, и она не завершилась , то это дедлок. Предположительно если операция последняя
Обсуждают сегодня