非同期チュートリアルを待つ:https://www.cnblogs.com/zhaoshujie/p/11192036.html
非同期メソッド:
プライベート 非同期タスク< ストリング > TestAsync() { Console.WriteLineをは(" 非同期メソッドが開始" ); VARタスクTask.Run =(()=> { のThread.sleep(2000 ); Console.WriteLineを(" 新しいスレッド" ); 戻り " 新しい糸端を" ; )}; VARの結果を= のawait タスク; Console.WriteLineを(" 非同期メソッドは終了" ); リターン結果; }
使用中のコールを待っていない場合には
公共IActionResultインデックス() { Console.WriteLineを(" メインスレッド開始" ); Console.WriteLineを(" 出力:" + TestAsync()); Console.WriteLineを(" メインスレッド終了" ); }
結果:
図1に示すように、順に実行される非同期メソッドを待機する前にメインスレッド++コード
2、スタートを待つ(新しいスレッドを開きます)
取得値TestAsync();:3、メインスレッドの残りのコードが実行される、Console.WriteLineを(+ TestAsync() "出力")
4、終了を待って、コードは、非同期メソッドを待ち続けます
呼び出すときに使用すると、待っています
パブリック 非同期タスク<IActionResult> インデックス() { Console.WriteLineを(" メインスレッド開始" ); Console.WriteLineを(" 出力:" + のawait TestAsync()); Console.WriteLineを(" メインスレッド終了" ); }
結果:
すべての実行順序、リターンが正しい値を得ることができます