【发布时间】:2011-01-11 16:08:20
【问题描述】:
我的 WCF 服务中很少有方法需要花费大量时间 - 生成报告和发送电子邮件。
根据目前的要求,要求Client应用程序只是提交请求,而不是等待整个过程完成。它将允许用户继续在客户端应用程序中执行其他操作,而不是等待整个过程完成。
我不知道该走哪条路:
AsyncPattern = true OR
IsOneWay=true
请指导。
【问题讨论】:
标签: wcf asynchronous
我的 WCF 服务中很少有方法需要花费大量时间 - 生成报告和发送电子邮件。
根据目前的要求,要求Client应用程序只是提交请求,而不是等待整个过程完成。它将允许用户继续在客户端应用程序中执行其他操作,而不是等待整个过程完成。
我不知道该走哪条路:
AsyncPattern = true OR
IsOneWay=true
请指导。
【问题讨论】:
标签: wcf asynchronous
两者都可以。
通常我认为 WCF 操作没有理由不是异步的,除了开发人员懒惰。
你不应该比较它们,因为它们没有可比性。
简而言之,AsyncPattern=True 执行异步调用,无论您是否返回值。
OneWay 仅适用于 void 方法,并在您的线程上加锁,等待接收者确认收到消息。
【讨论】:
我知道这是一篇旧帖子,但 IMO 在您的场景中您应该使用 IsOneWay,因为您不关心服务器结果是什么。根据您是否需要最终通知客户端(例如服务器作业完成或失败),您可能还需要考虑更改接口以使用 SessionMode=required,然后使用双工绑定。
即使您确实想使用异步双向通信,因为您的客户端 DID 关心结果,但仍有不同的概念:
【讨论】: