Main
方法和async
修飾符:解決方案挑戰:>使用async
>關鍵字的異步編程不直接支持舊控制台應用程序的方法。 此限制可以防止在應用程序的輸入點內直接執行代碼。
Main
>根據您的開發環境,幾個解決方法可以在
>的方法中實現異步操作:>
Main
Visual Studio的現代版本(2017 Update 3及以後)直接支持
方法。 只需將您的方法的返回類型更改為async
>或Main
>:Main
>
Task
Task<T>
<code class="language-csharp">class Program { static async Task Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = await bs.GetList(); } }</code>
>
如果您使用的是較舊的Visual Studio版本,則可以通過明確阻止主線程來執行異步代碼,直到異步操作完成:
helper方法(
),並使用<code class="language-csharp">class Program { static void Main(string[] args) { MainAsync(args).GetAwaiter().GetResult(); } static async Task MainAsync(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = await bs.GetList(); } }</code>等待其完成。
async
3。 利用異步上下文(例如,asyncex):MainAsync
>
GetAwaiter().GetResult()
要獲得更強大的異步控制流,請考慮使用
在專用上下文中管理異步執行。
通過採用這些方法之一,您可以成功地將異步編程集成到控制台應用程序的方法中,從而提高效率和響應能力。 Nito.AsyncEx
>
以上是為什麼我不能在控制台應用的主要方法上使用' async”修飾符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!