У меня есть веб-сайт, которому нужно позвонить в веб-службу от 1 до 10000 раз. В настоящее время это делается в цикле по каждому что-то вроде этого:Лучшая техника для потокового вызова веб-службы
List<Address> addresses
List<Response> responses = new List<Response>();
foreach(Address address in addresses){
//Setup web service call
//Call web service
//Parse response into object for front end
responses.Add(CustomReponseObject)
}
// The responses object is then just serialized and set to the front end client to parse through.
Нынешний подход не имеет резьбу, и я хотел бы, чтобы ускорить его. Не уверен, что я должен использовать управляемые потоки или перейти с новыми ключевыми словами Async Await.
Я начал этот процесс, а затем повесил трубку, если новое ключевое слово Async может работать, используя блокировку в списке ответов или может потребоваться что-то вроде ConcurrentBag? Я прочитал все три варианта, но не знаю, какой вариант лучше всего подходит для моего варианта использования?
Можете ли вы показать пример, как 'async' является альтернативой' ConcurrentBag'? (Обратите внимание, что в целом вопросы «наилучшего подхода» основаны на мнениях/слишком широки без конкретной цели. В настоящее время у вас нет ничего, что показывает, почему ваш нынешний подход неприемлем) –