Это в значительной степени зависит от услуг, которые вы вызываете, и того, как долго вы ожидаете, что операции займут.
Если вы запускаете 1000 запросов для одной службы, вы, вероятно, столкнетесь с удушением службы до того, как будут получены все вызовы службы.
Существует аналогичное явление на стороне клиента. WCF будет разрешать только столько одновременных вызовов одновременно. В некоторой степени это настраивается, но я был бы удивлен, если бы 1000 одновременных вызовов работали без перебоев или двух.
Если вызовы становятся более или менее синхронными, я помещаю все запросы в очередь и обрабатываю каждый вызов по очереди. Затем вы можете отслеживать очередь из своего пользовательского интерфейса, чтобы обновлять ход выполнения вызовов в службу.
Если ваша архитектура поддерживает 1000 одновременных вызовов, тогда дуплексная привязка будет подходящей. Вы можете просто опросить для завершения.
Кроме того, вы можете создать паб / суб-сервис, который целевой сервис обновляет по мере выполнения запросов. Ваш клиент будет просто перехватывать события из службы pub / sub, когда станут доступны результаты запросов.