Синхронный запуск асинхронного кода в .NET [дубликат]C#

Место общения программистов C#
Гость
Синхронный запуск асинхронного кода в .NET [дубликат]

Сообщение Гость »


Я знаю, что этого следует избегать любой ценой, но иногда это просто необходимо: нам нужно синхронно запускать асинхронный код. Я хотел бы знать, есть ли какие-либо различия и/или существует ли предпочтительный подход к этим двум частям кода или есть ли какая-либо альтернатива, которая лучше:

Задача задача = ...; //#1 Task.Run(async() => { дождитесь задачи.ProcessAsync(); }).GetAwaiter().GetResult(); Или просто:

//#2 Task.ProcessAsync().GetAwaiter().GetResult(); Вариант №1 использует ключевые слова async/await и весь связанный с ним синтаксический сахар, но не уверен, что это обязательно сделает его лучше.

Вернуться в «C#»