控制台应用中的异步编程:实用指南
>在控制台应用程序的
方法中运行异步代码需要仔细考虑,因为>方法本身的局限性。 本文探讨了实现异步执行的有效策略。Main
>
在Visual Studio 2017更新3(15.3)之前,异步方法不支持。 但是,现代c#允许异步Main
返回
。Main
。
Main
Task
>看似直接,但这种方法的行为可能与Task<T>
相似,可能会阻止主线程。 鉴于持续的C#语言规范改进,精确的行为仍然细微。
<code class="language-csharp">class Program { static async Task Main(string[] args) { // Asynchronous operations here... } }</code>
>方法立即返回,一旦等待,就可以恢复执行。 至关重要的是,GetAwaiter().GetResult()
捕获了此恢复的当前上下文。
方法的返回信号程序终止操作系统。await
nuget软件包)等库提供此功能。async
>
await
或者,我们可以明确地阻止主线程,直到异步任务得出结论:
Main
使用
可能会投掷AsyncContext
>。 这样可以确保更清洁的错误处理。 选择最适合您项目需求和错误处理策略的方法。Nito.AsyncEx
以上是如何在控制台应用程序的主要方法中运行异步代码?的详细内容。更多信息请关注PHP中文网其他相关文章!