Вызов одновременных потоков веб-сервисов - PullRequest
0 голосов
/ 21 октября 2011

У меня следующая проблема: Я делаю несколько запросов в веб-сервис через HttpWebRequest, следующим образом. Я создаю список всех запросов, затем я делаю один вызов в моем списке. Оказывается, чтобы все запустить, моя страница ждет всех запросов и затем страница освобождается. Что мне нравится делать? Для каждого запроса система будет делать запрос в разных потоках, каждый поток для завершения, выбрасывать результат в переменную или список ... в соответствии с моими потребностями. У кого-нибудь есть решение, чтобы помочь мне?

Большое спасибо всем пользователям StackOverflow, потому что они мне очень помогают.

Милтон Камара Гомес

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Мне кажется, что вы хотите выполнить асинхронный запрос. Об этом уже есть много информации (например, stackoverflow , официальный обзор MSDN и публикация блога MSDN ).

0 голосов
/ 21 октября 2011
List<...> requests = new List<...>();
List<...> results = new List<...>();
Parallel.ForEach(requests,request=>{
    var res = DoWork(request);
    lock (results) results.Add(res);
});
0 голосов
/ 21 октября 2011

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

Если вы используете .NET 4, попробуйте метод Parallel.ForEach () TPL.Он позволяет вам указать, что для каждого элемента коллекции должна выполняться определенная операция с функциональностью, аналогичной встроенному ключевому слову foreach.Звучит так, как будто он должен довольно легко «заскочить» в код, который вы сейчас используете.Документация здесь: http://msdn.microsoft.com/en-us/library/system.threading.tasks.parallel.foreach.aspx.

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