We wszystkich przykładach zastosowań, które mogę znaleźć HttpClient
, jest używany do jednorazowych połączeń. Ale co w przypadku trwałej sytuacji klienta, w której można wysłać kilka żądań jednocześnie? Zasadniczo, czy można bezpiecznie wywoływać jednocześnie client.PostAsync
2 wątki z tego samego wystąpienia HttpClient
.
Nie szukam tutaj wyników eksperymentów. Przykładem roboczym może być po prostu fuks (i to uporczywy), a błędnym przykładem może być problem z błędną konfiguracją. Idealnie szukam autorytatywnej odpowiedzi na pytanie o obsługę współbieżności w HttpClient.
.net
c#-4.0
concurrency
dotnet-httpclient
Alex K.
źródło
źródło
HttpClient
i usuwania: stackoverflow.com/questions/15705092/…Odpowiedzi:
Według MSDN , od .NET 4.5 Poniższe metody instancji są bezpieczne wątkowo (dzięki @ischell):
źródło
Oto kolejny artykuł Henrika F. Nielsena na temat HttpClient, w którym mówi:
„ Domyślny HttpClient to najprostszy sposób, w jaki możesz rozpocząć wysyłanie żądań. Pojedynczy HttpClient może być używany do jednoczesnego wysyłania dowolnej liczby żądań HTTP, więc w wielu scenariuszach możesz po prostu utworzyć jednego HttpClient, a następnie użyć go do wszystkich swoich żądań ” .
źródło
Znaleziono jeden post na forum MSDN autorstwa Henrika F. Nielsena (jednego z głównych architektów HttpClient).
Szybkie podsumowanie:
źródło