Да, можно, но это чревато проблемами, в частности, дедлоками.
Способы синхронного вызова асинхронного кода:
Использование Result
свойства или метода Wait()
у объекта Task
.
csharp
csharp
Использование GetAwaiter().GetResult()
:
csharp
Недостатки такого подхода:
Wait()
и Result
блокируют текущий поток, ожидая завершения задачи. Если асинхронный метод пытается захватить заблокированный контекст синхронизации для продолжения выполнения после await
,Да, можно, но это чревато проблемами, в частности, дедлоками.
Способы синхронного вызова асинхронного кода:
Использование Result
свойства или метода Wait()
у объекта Task
.
csharp
csharp
Использование GetAwaiter().GetResult()
:
csharp
Недостатки такого подхода:
Wait()
и Result
блокируют текущий поток, ожидая завершения задачи. Если асинхронный метод пытается захватить заблокированный контекст синхронизации для продолжения выполнения после await
,Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.