AsyncCallbackデリゲートに、非同期処理完了後に呼び出すメソッドを指定できる・・・。
まず、デリゲートの生成から・・・。
非同期処理で実行するasyncronousFunc、非同期処理完了後に呼び出すcallbackを生成・・・。
AsyncronousFuncに引数がなければ、asyncronousFunc.BeginInvokeの最初の引数にcallbackを指定する・・・。
(引数がある場合は、引数の分の後に指定・・・。)
AsyncronousFuncは"AsyncronousFunc(i)"の出力、AsyncCallbackFuncは"AsyncCallbackFunc!"の出力をする・・・。
asyncronousFunc.EndInvokeして、すぐ"Finish!"を出力して終わると、AsyncCallbackFuncを実行する暇もなく終わってしまう場合がある・・・。
なので、Thread.Sleepで3秒休止すると、AsyncCallbackFuncが実行されてから、Mainのその後の処理という流れになる・・・。
AsyncronousFunc(1) AsyncronousFunc(2) AsyncronousFunc(3) AsyncronousFunc(4) AsyncronousFunc(5) AsyncCallbackFunc! Finish! 続行するには何かキーを押してください . . .
こんな風に非同期処理AsyncronousFuncの後、AsyncCallbackFuncが実行されて終わる・・・。
Sample/dotnet/AsyncCallback/AsyncCallback/src/AsyncCallback_ at master · bg1bgst333/Sample · GitHub