首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当IsOneWay=false时,wcf如何阻塞客户端?

当IsOneWay=false时,wcf如何阻塞客户端?
EN

Stack Overflow用户
提问于 2011-09-21 19:33:50
回答 1查看 804关注 0票数 1

主机:有一个函数是:IsOneWay=False

此函数调用-弹出主机MessageBox中的

Client:有一个winform,其中只有按钮,它调用主机的func。

如果主机IsOneWay=true中的函数-我可以多按下客户端按钮(他不在乎,如果我在主机上发布了消息框)。

但如果IsOneWay=False -那么他只让我按了一次(,直到,我在主机上发布MesageBox )。

代码语言:javascript
复制
host does he do that ?

How the Client knows that he should be blocked until the user releases the MessageBox on the Host side ?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 19:47:56

WCF主机在消息框被取消之前不会响应客户端。

如果要闯入客户端的调试器,您应该看到您的代码仍然在对主机的WCF调用中。如果你等得够久,它最终会超时。WCF可以这样做,因为IsOneWay=false要求服务器在客户机继续执行之前返回。当IsOneWay=true发送请求时,服务器立即成功地进行响应,允许客户机继续(在执行任何服务器代码之前)。

代码语言:javascript
复制
IsOneWay=false
   Client       Server
   ------    |  ------
1. click    --> method --> messagebox waits for OK
(client can't continue until server returns)
2. continue <-- method <-- user dismisses messagebox

IsOneWay=true
   Client     Server
   ------  |  ------
1. click  -->  method --> messagebox waits for OK
(client continues regardless of server state)
2. click  -->  method --> 2nd messagebox waits for OK
                          user dismisses messageboxes
etc...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7505575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档