我正在使用 .net 远程处理,通过异步函数调用来处理我当前项目的 ipc。
我遇到了一个问题,我希望客户:
- A同步请求信息
- 继续加载 GUI
- 当 ASynchronous 调用完成后,将其加载到 gui
我使用以下代码执行此操作
GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText);
AsyncCallback ^callback = gcnew AsyncCallback(RecievedSomething);
IAsyncResult ^arValSet = svd->BeginInvoke(callback, nullptr);
在上面的例子中,RecievedSomething在这个例子中必须是一个静态方法。这是为什么?如果我可以使这个函数成为非静态的,我可以加载我的 gui,一切都很好。
我的解决方案是让 RecievedSomething 触发我的 gui 订阅的静态事件。这很麻烦,因为它现在需要 2 个委托和一个事件来处理我的 1 个异步函数调用。
有没有办法让 AsyncCallback 与非静态函数一起工作?
谢谢!