Асинхронное программирование похоже на вирус зомб ie? - PullRequest
1 голос
/ 07 мая 2020

Я экспериментирую с асинхронным программированием в C#, в основном пытаясь отправить вызовы API в созданный мной API, но насколько я понимаю, можно вызвать метод async только из другого метода async. Однако мой метод Main не может быть асинхронным. Я не хочу вызывать метод синхронно с использованием атрибута .Result, потому что это разрушает суть асинхронного программирования. Должен ли я вызывать метод из другого потока или есть другое решение?

1 Ответ

5 голосов
/ 07 мая 2020

Main теперь может быть асинхронным:

public static async Task Main(string[] args) 
{
   //TODO: do something more interesting
   await Task.Delay(100);
}

Но даже когда этого не могло быть, вы можете воспользоваться преимуществом асинхронного программирования, просто используя небольшой шаблонный код:

public static void Main(string[] args)
{
   MainAsync(args).GetAwaiter().GetResult();
}

private static async Task MainAsync(string[] args) 
{
  // TODO: do something more interesting.
  await Task.Delay(100);
}

Пожалуйста прочтите эту статью для получения дополнительной информации

...