2011-05-12 31 views
0

我想以非阻塞方式從另一個Web服務調用Web服務。我通過使用BackgroundWorker實現了這一點。但是,我不確定這是否是最好的方法。WCF Service在後臺調用另一個服務

情景: 我把它執行特定的任務&必須通知有關所做的更改另一個Web服務SERVICE_B Web服務SERVICE_A。我調用Service_B的單向函數NotifyUpdates來處理更新。 Service_A不會等待Service_B的響應&繼續其任務。來自Service_B的響應記錄在後臺。

我的問題是,最好的辦法是什麼?

謝謝。

回答

2

BackgroundWorker專門用於UI的使用,我不認爲這是在這裏使用它的最好方法。

如果您使用的是.NET 4,最好使用Task

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

如果沒有,使用ThreadPool.QueueUserWorkItemThread

ThreadPool.QueueUserWorkItem(new WaitCallback(DoServiceBCall)); 

希望這有助於

+0

謝謝。這有助於。 – sunilkumarba 2011-05-13 10:37:46

0

首先,根據您的如果對服務B的調用是單向的,服務A將不會收到來自服務B的任何響應,除了Http狀態碼(如果調用服務 - B在Http上)。

我會調用Service-B異步保持事情和代碼簡單。

HTH, Amit

+0

我正在異步調用Service_B。我不確定用於異步調用的是什麼,並認爲可能有更好的方法來做到這一點。正如上面的答案中提到的,有Task,ThreadPool&BackgroundWorker(我正在使用)。 – sunilkumarba 2011-05-13 10:37:07

相關問題