模拟火灾&使用C#Threading忘记场景

时间:2013-07-31 09:02:30

标签: c# multithreading wcf isoneway

我有一个Web服务,需要花费大量时间来执行。我打算将处理任务委托给后台线程&立即将确认响应返回给用户。

在这种情况下,我担心后台线程的生命周期 在主方法/线程完成执行之前,后台线程是否会完成委托任务?

2 个答案:

答案 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