异步编程像僵尸病毒一样吗?

时间:2020-05-07 11:05:57

标签: c# asynchronous async-await

我正在尝试使用C#进行异步编程,主要是尝试将API调用发送到我创建的API,但是据我了解,只能通过另一个async调用async方法方法。但是,我的 Main 方法不能异步。我不想使用.Result属性来同步调用该方法,因为这破坏了异步编程的意义。我必须从另一个线程调用该方法还是有其他解决方案?

1 个答案:

答案 0 :(得分:5)

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);
}

请阅读this article了解更多信息