読者です 読者をやめる 読者になる 読者になる

AsyncCallback

AsyncCallbackデリゲートに、非同期処理完了後に呼び出すメソッドを指定できる・・・。

AsyncCallback デリゲート (System)

まず、デリゲートの生成から・・・。

非同期処理で実行する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