我有一个Web服务,需要花费大量时间来执行。我打算将处理任务委托给后台线程&立即将确认响应返回给用户。
在这种情况下,我担心后台线程的生命周期 在主方法/线程完成执行之前,后台线程是否会完成委托任务?
答案 0 :(得分:0)
如果应用程序池被回收,看起来您的后台线程可能会中止。看看这篇文章ThreadPool.QueueUserWorkItem in Web Service for “Fire and Forget” task
答案 1 :(得分:0)
您应该异步调用您的服务。
var service = new YouServiceClient();
service.SomeMethodCompleted +=
(sender, args) +=
{
// Put code here to handle the response and extract a return value or whatever.
}
service.SomeMethodAsync();
有关详细信息,请参阅How to: Call WCF Service Operations Asynchronously。