在測試async 與await關鍵字時,發現有時Visual Studio的錯誤訊息怪怪的,程式如下:
static async void AddAsync( ) {
Console.WriteLine( "AddAsync Thread ID : " +
Thread.CurrentThread.ManagedThreadId.ToString( ) );
Task<int> t = Task.Run( ( ) => Add( 10 , 50 ) );
Console.WriteLine( "after await" );
Console.WriteLine( "Result : " + t.Result.ToString( ) );
}
Console.WriteLine( "AddAsync Thread ID : " +
Thread.CurrentThread.ManagedThreadId.ToString( ) );
Task<int> t = Task.Run( ( ) => Add( 10 , 50 ) );
Console.WriteLine( "after await" );
Console.WriteLine( "Result : " + t.Result.ToString( ) );
}
若未在async方法中,使用await關鑑字,發現Visual Studio 2012編譯時,會出現以下錯誤訊息:
warning CS1998: 這個非同步方法缺少 'await' 運算子,因此將以非同步方式執行…
如下圖:
可是有時又怪怪的,說是以同步方式執行,以為眼花重新編譯好幾次….
最後決定把相同的程式拿到英文版的Visual Studio 2012上執行,結果訊息如下….
結論:應該中文版翻錯了吧!!
沒有留言:
張貼留言