gpt4 book ai didi

.net - 让 IAsyncResult 触发 "completed"事件

转载 作者:行者123 更新时间:2023-12-04 06:49:10 25 4
gpt4 key购买 nike

我正在使用 Remoting 执行一些 IPC 通信,并且有以下问题:

当我调用委托(delegate)在服务器端收集数据时,当收集到 IAsyncResult 时,可能会在客户端上触发一个事件?

以下代码在 VC++ 中,但 .net 代码是 .net 代码。

  GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText);
IAsyncResult ^arValSet = svd->BeginInvoke(nullptr, nullptr);
String ^result = svd->EndInvoke(arValSet);

在此示例中,最后一行代码将锁定当前线程,直到 Invoke 完成。是否可以只订阅“IAsyncResult_Completed”事件或类似事件?

谢谢

最佳答案

是的,有一个 good example在 MSDN 上使用 AsyncCallback 委托(delegate)执行此操作。

最简单的方法是使用 BeginInvoke在委托(delegate)上并传递一个 AsynCallback 的实例操作完成时调用的委托(delegate)。

在 C#(我比托管 C++ 更熟悉)中,您基本上会写:

// when the async operation completes, YourCallBackMethod will be run
AsyncCallback callback = new AsynCallback( YourCallBackMethod );
callAsynchronously.BeginInvoke( callback, null );

在您的回调方法中,您必须调用 EndInvoke()在您异步运行的委托(delegate)上。最简单的方法是使用提供的 IAsyncResult .

关于.net - 让 IAsyncResult 触发 "completed"事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3372567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com