首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight 4双工服务-停止回调

Silverlight 4双工服务-停止回调
EN

Stack Overflow用户
提问于 2011-02-07 09:54:10
回答 1查看 393关注 0票数 0

我有一个Silverlight4应用程序,它通过创建到客户端的回调来使用WCF duplexing。在客户端,我有一个从数据库中检索所有行的方法(实际上不是这样的,但对于本例而言)。使用回调将每一行发送到客户端。一旦启动,我需要弄清楚如何中止这个过程。例如,假设我厌倦了看到这个表中的所有行在我的屏幕上滚动。我想查看另一个表中的行。如何在第一个操作进行到一半时停止它?

我以为我可以在服务器上创建一个新的操作来中止处理,但这不会对已经通过回调发送并等待客户端拾取的内容做任何事情。

我正在寻找一种方法来保证,一旦新的搜索开始,我周围没有任何旧数据将被客户拾取。有没有人知道实现这一目标的最好方法?

有趣的是,在使用双工服务之前,我的问题是无法足够快地获取数据。现在我正在使用双面打印,我无法将其关闭!

EN

回答 1

Stack Overflow用户

发布于 2011-02-07 15:01:47

我可以想到两种方法来解决这个问题。注:我也没有测试过,毫无疑问还有其他的。

(1)在客户端或服务器端,中断连接并重新建立新连接。有点老生常谈,根据我的经验,围绕这种“现在你看到现在你不会看到”的连接进行编码是一种皮塔。

(2)在服务器端,最初只发送一定量的数据,然后缓存剩余的数据,直到收到来自客户端的通知,表示您确实想看到下一位。这将类似于许多“分页”UI所使用的方法,其变体将不是数据排队,而是对客户端的调用排队。将它们抛入某种类型的Action变量中,对它们进行排队,只有在客户端说“好的,给我下一个50”之后才执行回调。

不幸的是,我不知道有什么方法可以告诉OperationContext,“中止所有挂起的调用,但保持通道活动”。也许它就在那里,但我一直没能找到它。很高兴有更多的知识和经验的人纠正我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4917553

复制
相关文章

相似问题

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