Как правильно создать экземпляр HttpClient в Windows form

#asp.net-web-api2 #dotnet-httpclient

#asp.net-web-api2 #dotnet-httpclient

Вопрос:

Согласно MSDN HttpClient предназначен для создания экземпляра один раз и повторного использования на протяжении всего срока службы приложения. Создание экземпляра класса HttpClient для каждого запроса исчерпает количество доступных сокетов при больших нагрузках. Это приведет к ошибкам SocketException. Ниже приведен пример правильного использования HttpClient.

 public class GoodController : ApiController    
{    
    private static readonly HttpClient HttpClient;    
    
    static GoodController()    
    {    
        HttpClient = new HttpClient();    
    }    
}       
  

Но в Windows form (очевидно, что контроллер здесь не имеет смысла), как правильно управлять HttpClient в настольном приложении, каждый экземпляр HttpClient открывает порт на сервере, поэтому очевидно, что несколько экземпляров не будут хорошими.

Комментарии:

1. Создайте одноэлементный класс, который экспортирует один HttpClient , используемый каждым объектом. HttpClient является ли потокобезопасным, если вы используете SendAsync во всех своих вызовах (т. Е. Не изменяете никаких Default... заголовков)