非同期についてテストを待ちます

非同期チュートリアルを待つ: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を(" メインスレッド終了" ); 
        }

結果:

すべての実行順序、リターンが正しい値を得ることができます

 

おすすめ

転載: www.cnblogs.com/yeagen/p/11746980.html