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

EndInvoke

EndInvokeでは、非同期処理メソッドの戻り値を受け取ることができるし、参照渡しで受け取ることもできる・・・。

今回は、2つの値の足し算を非同期処理でさせて、結果を取得する・・・。

今回のAsyncronousFuncDelegateは、引数にint型のa, bとint型の参照渡しでrefValue、戻り値がintという感じに・・・。

渡す非同期処理メソッドAsyncronousFuncは、

aとbを足してresultに格納・・・。
5秒休止したあと、refValueにも結果を格納・・・。
戻り値としてresultを返す・・・。

Main側は、

BeginInvokeの最初の3つは、AsyncronousFuncに渡す引数・・・。
可変引数なので、後ろの2つ以外は引数の数だけ増える・・・。

"Calculating..."と出力・・・。

EndInvokeの最初も可変引数で、参照渡しの引数の数だけ増える・・・。
でrefValueを指定し、戻り値resultも返ってくる・・・。

resultとrefValueを出力・・・。

Calculating...
result = 30
refValue = 30
続行するには何かキーを押してください . . .

戻り値にも参照渡しにも計算結果が格納されている・・・。

Sample/cs/EndInvoke/EndInvoke/src/EndInvoke_ at master · bg1bgst333/Sample · GitHub