我有以下情况: 我的 WCF 服务允许客户端注册以等待某个事件。等待在服务端是异步的,即注册服务员,当进程完成后,通知服务员。目前,它只是一个ManualResetEvent
.
现在我想通过 WCF 公开这个方法。我尝试使用AsyncPattern=true
并创建了两种方法,BeginWait
它们将事件捆绑到 中IAsyncResult
,并EndWait
调用AsyncWaitHandle.WaitOne()
. 但是,如果我从客户端调用BeginWait
,则不会执行服务器端。我正在使用手动实现的包装器(我的代理类是从 派生的),它基本上调用,并且确实调用了这个函数;但在服务器端,电话永远不会到达。EndWait
EndWait
ChannelBase<IWaitService>, IWaitService
Channel.EndWait()
我在这里做错了什么?后续问题:如果异步调用正常工作,是否有一种简单的方法可以在客户端实现同步?