BeginInvoke で繰り返しメソッドを呼び出しています。各呼び出しの後、EndInvoke を呼び出します。
問題は、2 番目の呼び出しで、返された IAsyncResult の IsCompleted メンバーが、BeginInvoke 呼び出しの直後に true に設定されることです。
これにより、プログラムは 2 番目の呼び出しが完了したと見なすため、誤動作が発生します。
なぜこれを行うのですか?2番目の呼び出しが本当に完了したことをどのように検出できますか?
Declarations:
IAsyncResult ar;
Mercury.J4000.Ui.frmMain.doPrintsDelegate printCallback;
The BeginInvoke call:
ar = printCallback.BeginInvoke (jobNameArray, copies, distances, null, null);
The EndInvoke call (in another method):
printCallback.EndInvoke(ar);