C#在Main函數(shù)中颅夺,下面的代碼是不能正確編譯的:
public static void Main()
{
var ip = await RunAsyncMethod();
}
因為使用await
需要將Main聲明為async
蔬胯,像這樣
public static async void Main()
{
var ip = await RunAsyncMethod();
}
然而Main方法不能直接聲明為async
对供,這時我們需要使用一種叫“同步等待”的模式來調(diào)用異步方法:
public static void Main()
{
var ip = await RunAsyncMethod().GetAwaiter().GetResult();
}
.GetAwaiter().GetResult()
這是一個同步等待的方式,用于在非異步方法中等待異步方法完成。它會阻塞當前線程产场,直到異步操作完成鹅髓。