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