c# - 如何在 C# 中实现长轮询客户端?

标签 c# wsdl client long-polling

我有一个 C# 桌面应用程序,我可以毫无问题地使用 Web 服务(通过“添加服务引用”添加 wsdl,因此我创建了一个对象并调用了它的函数)。

现在,我想使用长轮询技术,但我不知道如何从客户端的角度执行此操作。

如何配置超时? 我应该使用专用于此的线程吗? 是否有 C# 桌面应用程序的示例? (还没找到)

谢谢, 大坝的

最佳答案

您应该能够在 Web 服务对象上配置超时 - 详细信息将取决于它使用的具体类,但请查看 WebClientProtocol.Timeout举个例子。

现在您可以从专用线程同步调用它,或者您可以对网络服务进行异步调用以开始,指定要执行的回调(可能在线程池线程上) 当服务回复时。在这种情况下,您可能会发现您可以在异步调用本身上指定超时 - 同样,这将取决于您所拥有的 Web 服务代理类的确切类型。

这样您就不需要“浪费”一个线程来等待响应——但是您可能会发现异步编程模型比同步模型更难理解。如果您在任何时候只收到这些请求中的一两个,那么额外的几个线程不太可能成为问题。如果您正在等待来自 500 个不同服务的响应,那就另当别论了,异步模型绝对是最佳选择。

关于c# - 如何在 C# 中实现长轮询客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1530572/

相关文章:

c - 如何在单线程服务器上处理多个客户端(使用套接字)

c# - 表单例份验证 - 需要 SSL - 设置身份验证 Cookie 失败

c# - 如何在不重新编译的情况下在 .NET 中动态切换 Web 服务地址?

php - 未捕获的 SoapFault 异常 : [HTTP] Error Fetching http headers

java - 发送请求时 WSDL 字段名称不同

server - Rust echo 服务器和客户端使用 futures 永远阻塞自己

c# - FMOD 声音库 - 同步点让我抓狂!

c# - 在 Windows Store XAML 应用程序中安装客户端证书

c# - 如何在 EF 和 C# 中编写用于检索 IEnumerable 对象的类

svn - 是否可以在没有 SVN 客户端的情况下 checkin 文件或将文件添加到 SVN 存储库?