ASP.NET Web Service在另一个Thread中调用

时间:2012-01-05 21:08:58

标签: asp.net multithreading web-services

我们正在对某些数据更新进行Web服务调用以同步另一个数据库。此Web服务调用占用一些响应时间。会在线程中添加它有帮助吗?这样做的任何挫折?如果Web服务调用失败,则失败,就是这样。这就像一场火灾,忘记了电话。

4 个答案:

答案 0 :(得分:2)

如果它花了足够长的时间来挂起用户界面,那么建议在另一个线程上调用它。

答案 1 :(得分:2)

除了Tudor的回答之外,我建议您首先使用.NET 4.0.from任务并行库中的新Task类。例如:

Task backgroundProcess = new Task(() =>
{
     service.CallMethod();
});

答案 2 :(得分:2)

您可以使用Asyncronous回调来使用异步Web服务调用来阻止阻塞主线程。

  

通过对Web服务进行异步调用,您可以继续   在等待Web服务响应时使用调用线程。   这意味着用户可以继续与您的应用程序进行交互   没有它在Web服务访问进行时锁定。

来自MSDN:Making Asynchronous Web Service Calls

答案 3 :(得分:0)

我强烈反对从Web应用程序使用异步Web服务调用(包括在单独的线程中进行调用)。而是使用像Ajax这样的替代方法,并从Ajax Call实例调用此Web服务。 Web上下文中没有简单的方法来处理线程和异步调用。

相关问题