Я неоднократно вызываю метод с BeginInvoke. После каждого вызова я вызываю EndInvoke.Заявки на участие второго BeginInvoke уже завершены. Зачем?
Проблема в том, что для второго вызова член IsCompleted в возвращенном IAsyncResult установлен в true IMMEDIATELY после вызова BeginInvoke.
Это приводит к неисправности, так как программа тогда думает, что второй вызов сделан.
Почему это делается, и как я могу определить, когда второй звонок ДЕЙСТВИТЕЛЬНО завершен?
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);
Не могли бы Вы поделитесь своим кодом? –
Пожалуйста, покажите код. Не заставляйте нас угадывать, что вы сделали неправильно. –
Обновите свой вопрос кодом, а не размещайте его как комментарий. –