日期:2014-05-20  浏览次数:20753 次

WCF 服务端回调客户端问题
初学WCF,有以下两个问题请教下大家:

1. 采用双工通信时,服务端能否异步回调客户端?

2. 以上情况,当客户端本身就是异步调用模式呢?

3. 并发模式中的可重入模式,究竟怎么理解好?

以上,请帮忙解释下,谢谢。
wcf 异步 通信 并发 ?回调

------解决方案--------------------
1.可以;2.可以;
在双工模式下,服务端和客户端都可以独立地调用对方,谁都不用等待谁的答复,同样也不期待对方答复,因为如果期待答复,就变成请求/应答模式了。也就是说双方的调用都是单向调用,即我调你了,你不用回复我,你什么时候想回复我的时候呢你再调我,我就知道了,我是不会等着你的回复的。这样调用双方就会有很好的异步体验,我想调的时候就调,然后我就去干别的,什么时候调用完成了,你可以通过回调来通知我,我再决定下一步的动作,谁都不等谁。
------解决方案--------------------
1. 采用双工通信时,服务端能否异步回调客户端?
可以同步可以异步。
2. 以上情况,当客户端本身就是异步调用模式呢?
和客户端本身的模式无关
3. 并发模式中的可重入模式,究竟怎么理解好?
重入就是指在第一个函数没有调用完的时候,它有被调用。

双工通讯特别要注意死锁的问题。
如果客户端和服务器端都是同步,并且不允许重入的话,那么客户端要等到服务器返回才返回,而服务器返回需要调用客户端,此时客户端正在等待,不接受新的响应,于是服务器也只能等待,永远不返回,而客户端等服务器返回,所以也永远等待。

这里有个双工的例子:
http://download.csdn.net/detail/caozhy/5287998