1

我有一个网络服务,它需要很多时间来执行。我计划将处理任务委托给后台线程并立即将确认响应返回给用户。

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

4

2 回答 2

0

如果应用程序池被回收,看起来您的后台线程可能会中止。看看这篇文章ThreadPool.QueueUserWorkItem in Web Service for “Fire and Forget” 任务

于 2013-07-31T10:52:32.103 回答
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();

有关更多详细信息,请参阅如何:异步调用 WCF 服务操作

于 2013-07-31T14:02:14.727 回答