WCF服务在后台调用另一个服务

时间:2011-05-12 14:53:31

标签: wcf

我想以非阻塞的方式从另一个Web服务调用Web服务。我已经使用BackgroundWorker实现了这一点。但是,我不确定这是否是最佳方式。

情境: 我称之为Web服务Service_A执行某项任务&必须通知另一个Web服务Service_B有关所做的更改。我将Service_B的单向函数NotifyUpdates称为处理更新。 Service_A不等待Service_B的响应&继续其任务。 Service_B的响应记录在后台。

我的问题是,最好的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

BackgroundWorker的目的是用于UI,我不认为这是在这里使用它的最佳方式。

如果您使用.Net 4更好地使用Task

var t = Task.Factory.StartNew(() => DoServiceBCall());

如果没有,请使用ThreadPool.QueueUserWorkItemThread

ThreadPool.QueueUserWorkItem(new WaitCallback(DoServiceBCall));

希望这有帮助

答案 1 :(得分:0)

首先,根据您的场景,如果对服务B的调用是一种方式,服务A将不会从服务-B接收任何响应,除了Http状态代码(如果调用服务-B在Http上)。

我会异步调用Service-B来保持事物和代码的简单。

HTH, 阿米特