WCF向客户端发送事件

3
我有一个应用程序(服务器)和一个客户端通过WCF连接名为管道(全部.NET 4.0)。一切正常。客户端调用服务器的方法以及服务器对客户端的回调都可以正常工作。现在,我该如何简单地从服务器向客户端发送事件呢?
我的目标是:
- 客户端调用服务器上的长期方法,该方法立即返回 - 当服务器完成处理时,向客户端发送事件 - 然后客户端可以调用服务器上的方法来获取结果
请问如何以清晰的方式实现?

我总是有一个客户端和一个服务器,所以我认为实现发布/订阅可能有点过头了? - Enrico
“双工服务”场景似乎符合您的要求,我不确定命名管道是否支持双工通信,但是这篇MSDN文章表明它确实支持。 - Jeroen
@Jeroen,如果服务器将要发布的事件在后台线程上处理时怎么办?那种情况下 OperationContext.Current 会是 null,我将无法将该事件发布到客户端。 - JobaDiniz
@JobaDiniz 哎呀……我的评论是在2012年写的。如果你有新的或者后续问题,我建议你提出一个新的问题。 - Jeroen
2个回答

2

1

如果你想要更简单的方式,异步WCF调用是一个不错的选择。在.NET 4.0中有async关键字可以使用。或者你可以等待一段时间,然后调用服务器函数来查看文件是否准备好。为了确保,我会使用异步方式,为了更简单和快速,可以使用轮询。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接