>在控制台應用程序的
方法中運行異步代碼需要仔細考慮,因為>方法本身的局限性。 本文探討了實現異步執行的有效策略。 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中文網其他相關文章!