【发布时间】:2020-05-07 11:05:57
【问题描述】:
我正在 C# 中尝试异步编程,主要是尝试将 API 调用发送到我创建的 API,但据我了解,只能从另一个 async 方法调用 async 方法。但是,我的 Main 方法不能是异步的。我不想使用.Result 属性同步调用该方法,因为这会破坏异步编程的意义。我必须从另一个线程调用该方法还是有其他解决方案?
【问题讨论】:
-
它是什么类型的项目,什么框架和版本?
-
“我的 Main 方法不能是异步的” - 在语言级别 7.1+ 中可以。
-
@Rup 是的,除非他因自己的原因无法使其异步
-
Main 可以标记为异步,但这只是在幕后正确实现 GetAwaiter().GetResult() 所以它仍然阻塞。这就是它的方式,它很好。控制台应用程序中没有同步上下文。
-
您不需要在 Winforms 应用程序中从 Main 运行任何异步代码。
标签: c# asynchronous async-await