Да, можно, но это чревато проблемами, в частности, дедлоками.
Способы синхронного вызова асинхронного кода:
Использование Result
свойства или метода Wait()
у объекта Task
.
csharp
csharp
Использование GetAwaiter().GetResult()
:
csharp
Недостатки такого подхода:
Wait()
и Result
блокируют текущий поток, ожидая завершения задачи. Если асинхронный метод пытается захватить заблокированный контекст синхронизации для продолжения выполнения после await
,Да, можно, но это чревато проблемами, в частности, дедлоками.
Способы синхронного вызова асинхронного кода:
Использование Result
свойства или метода Wait()
у объекта Task
.
csharp
csharp
Использование GetAwaiter().GetResult()
:
csharp
Недостатки такого подхода:
Wait()
и Result
блокируют текущий поток, ожидая завершения задачи. Если асинхронный метод пытается захватить заблокированный контекст синхронизации для продолжения выполнения после await
,Register or sign in to get access to full answers for all questions from the question bank.