我想实现一个WCF服务,该服务立即响应调用者,但排队异步作业以便稍后处理。这样做的最佳方法是什么?我已经在how to implement an asynchronous service operation上阅读了MSDN文章,但该解决方案似乎仍需要在响应调用者之前完成任务。
答案 0 :(得分:1)
任何WCF服务都可以异步 -
WCF的一个好处是你可以同步编写服务。在客户端中添加ServiceReference时,可以选择生成异步方法。
这将自动使服务调用异步。该服务将在完成后返回,但客户端将获得两个方法 - BeginXXX和EndXXX,以及XXXAsync + XXXCompleted事件,其中任何一个都允许完全异步操作。
答案 1 :(得分:1)
根据您的想法和使用的技术,有很多方法可以实现这一目标(例如,除非您使用Silverlight,否则您可能不需要让您的应用程序异步调用服务)最直接的实现方式你的目标是让你的服务方法启动一个线程来执行大部分处理并立即返回。
另一种方法是创建某种请求(例如,在某种数据存储区中创建条目)并返回。然后,另一个过程(例如,Windows服务等)可以接收请求并执行处理。