Я использую удаленное взаимодействие .net с асинхронными вызовами функций для обработки ipc моего текущего проекта.
Я столкнулся с проблемой, когда я хотел бы, чтобы клиент:
- A Синхронно запрашивал информацию
- Продолжайте загрузку графического интерфейса пользователя
- Когда вызов ASynchronous завершен, загрузите его в графический интерфейс
Я делаю это с помощью следующего кода
GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText);
AsyncCallback ^callback = gcnew AsyncCallback(RecievedSomething);
IAsyncResult ^arValSet = svd->BeginInvoke(callback, nullptr);
В приведенном выше примере RecceiveSomething ДОЛЖЕНбыть статическим методом в этом примере.Это почему?Если бы я мог сделать эту функцию нестатичной, я мог бы загрузить свой графический интерфейс и все хорошо.
Мое решение состоит в том, чтобы RecieveSomething запускал статическое событие, на которое подписывается мой графический интерфейс.Это обременительно, поскольку теперь для обработки моего 1 асинхронного вызова функции потребуется 2 делегата и событие.
Есть ли способ заставить AsyncCallback работать с нестатической функцией?
Спасибо!