Использование параллельных расширений .Net (Parallel.Invoke) для множественных асинхронных вызовов?

В настоящее время у меня есть часть кода, которая должна выполнять около 7 вызовов веб-сервисов для различных поставщиков данных. На выполнение каждого вызова уходит несколько секунд, поэтому я хотел бы запускать их параллельно, чтобы ускорить работу.

Я заключил свои 7 вызовов в Parallel. Invoke, который отлично работает при одновременном запуске пары вещей, но на двухъядерном сервере он будет выполнять только 2 за раз, по одному на ядро. Поскольку все, что я делаю, - это жду ответа от вызовов веб-службы, я бы хотел, чтобы он получил все 7 и ждал их возврата.

Нет способа сделать это? Или, может быть, мой подход неверен? Может, мне нужно создать асинхронные вызовы веб-сервисов? Но как тогда ждать, пока они все вернутся, прежде чем двигаться дальше?

5
задан puffpio 14 September 2010 в 22:59
поделиться