Во всех примерах, которые я могу найти HttpClient
, он используется для разовых вызовов. Но что, если у меня постоянная клиентская ситуация, когда несколько запросов могут быть сделаны одновременно? В принципе, безопасно ли вызывать client.PostAsync
2 потока одновременно против одного и того же экземпляра HttpClient
.
Я не очень ищу экспериментальные результаты здесь. В качестве рабочего примера может быть просто случайность (и при этом постоянная), а неудачный пример может быть проблемой неправильной конфигурации. В идеале я ищу какой-нибудь авторитетный ответ на вопрос обработки параллелизма в HttpClient.
.net
c#-4.0
concurrency
dotnet-httpclient
Алекс К
источник
источник
HttpClient
и утилизировать: stackoverflow.com/questions/15705092/…Ответы:
Согласно MSDN , начиная с .NET 4.5, следующие методы экземпляров являются потокобезопасными (спасибо @ischell):
источник
Вот еще одна статья Хенрика Ф. Нильсена о HttpClient, где он говорит:
« По умолчанию HttpClient - это самый простой способ начать отправку запросов. Один HttpClient может использоваться для одновременной отправки столько HTTP-запросов, сколько вы хотите, поэтому во многих сценариях вы можете просто создать один HttpClient, а затем использовать его для всех ваших запросов. . "
источник
Нашел одно сообщение на форуме MSDN Хенрика Ф. Нильсена (одного из главных архитекторов HttpClient).
Краткое резюме:
источник