Служба WCF вызывает другую службу в фоновом режиме - PullRequest
0 голосов
/ 12 мая 2011

Я хочу вызвать веб-сервис из другого веб-сервиса неблокирующим способом. Я реализовал это с помощью BackgroundWorker. Но я не уверен, что это лучший способ сделать это.

Сценарий: Я вызываю веб-сервис Service_A, который выполняет определенную задачу и должен сообщить другому веб-сервису Service_B о внесенных изменениях. Я вызываю одностороннюю функцию Service_B NotifyUpdates для обработки обновлений. Service_A не ожидает ответа Service_B и продолжает свою задачу. Ответ от Service_B регистрируется в фоновом режиме.

Мой вопрос: как лучше всего это сделать?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

BackgroundWorker предназначен для использования пользовательского интерфейса, и я не думаю, что это лучший способ использовать его здесь.

Если вы используете .Net 4, лучше использовать Task

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

Если нет, используйте ThreadPool.QueueUserWorkItem или Thread

ThreadPool.QueueUserWorkItem(new WaitCallback(DoServiceBCall));

Надеюсь, это поможет

0 голосов
/ 12 мая 2011

Прежде всего, в соответствии с вашим сценарием, если вызов к услуге B является односторонним, служба A не получит никакого ответа от службы B, за исключением кода состояния Http (если вызов службы B находится на Http).

Я бы позвонил в Service-B асинхронно, чтобы все было просто и понятно.

HTH, Amit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...