在Main 中呼叫非同步方法:綜合指南
在非同步程式設計領域,遇到需要呼叫非同步方法的情況並不少見直接從Main 方法呼叫非同步方法。了解如何實現這一點對於利用非同步程式設計的優勢至關重要。
Main 中的非同步方法呼叫
考慮以下程式碼片段:
<br>公開課test<br>{<pre class="brush:php;toolbar:false">public async Task Go() { await PrintAnswerToLife(); Console.WriteLine("done"); } public async Task PrintAnswerToLife() { int answer = await GetAnswerToLife(); Console.WriteLine(answer); } public async Task<int> GetAnswerToLife() { await Task.Delay(5000); int answer = 21 * 2; return answer; }
}
多種方法
多種方法多種方法
多種方法
test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey();
多種方法
呼叫非同步有多種方法Main方法中的方法:
1.非同步Main 方法(C# 7.1 及更高版本)對於C# 7.1 及更高版本,Main 方法可以標記為非同步。這使得可以在 Main 方法中直接使用非同步方法,如以下範例所示:
static async Task Main(string[] args)<pre class="brush:php;toolbar:false">test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey();{
2.呼叫「Wait」方法對早期版本的C#,Wait 方法可用於阻塞線程,直到非同步方法完成。此方法如下:
static void Main(string[] args)<p>{<strong></strong></p>}<p></p>3。 OnCompleted 回呼(傳統方法)在某些情況下,您可能需要使用 OnCompleted 回調,如初始程式碼片段所示。但是,這種方法可能會導致死鎖,應盡可能避免。 最佳方法對於C# 7.1 及更高版本,首選使用非同步Main 方法方法,因為它簡化了程式碼並消除了基於回呼的呼叫的需要。對於早期版本的 C#,可以使用 Wait 方法,但請務必注意與阻塞執行緒相關的潛在效能影響。 結論呼叫非同步方法從Main方法中可以透過各種技術來實現。透過了解不同的方法及其意義,您可以根據您的特定需求和您使用的 C# 版本選擇最佳解決方案。
以上是如何在 C# 的 Main 方法中正確呼叫非同步方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!