C# AsyncCallback可以使用非静态委托吗?
我正在使用.net远程处理,通过异步函数调用来处理我当前项目的ipc 我遇到了一个问题,我希望客户:C# AsyncCallback可以使用非静态委托吗?,c#,.net,remoting,ipc,iasyncresult,C#,.net,Remoting,Ipc,Iasyncresult,我正在使用.net远程处理,通过异步函数调用来处理我当前项目的ipc 我遇到了一个问题,我希望客户: 异步请求信息 继续加载GUI 异步调用完成后,将其加载到gui中 我使用下面的代码来实现这一点 GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText); AsyncCallback ^callback = gcnew AsyncCa
GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText);
AsyncCallback ^callback = gcnew AsyncCallback(RecievedSomething);
IAsyncResult ^arValSet = svd->BeginInvoke(callback, nullptr);
在上面的示例中,ReceivedSomething在此示例中必须是静态方法。为什么呢?如果我能使这个函数非静态,我就可以加载我的gui,一切都很好
我的解决方案是接收一些触发gui订阅的静态事件的消息。这很麻烦,因为现在需要2个委托和一个事件来处理我的1个异步函数调用
有没有一种方法可以让异步回调与非静态函数一起工作
谢谢 您可以对
异步回调
委托使用非静态方法。您只需要正确地指定它。例如,要使用this->ReceivedSomething
:
AsyncCallback ^callback = gcnew AsyncCallback(this, &MyClassType::RecievedSomething);
+一个写得好的问题-1用于使用C#标记,然后编写C++CLI代码。看到C++CLI中的可耻、丑陋的混乱,我会晕船。周一早上,我第一件事就是尝试一下,谢谢!我没有把二和二放在一起,并意识到AsyncCallback只是一个委托,它的构造函数应该像一个委托一样运行。