Logo it.boatexistence.com

Il client http dovrebbe essere transitorio o singleton?

Sommario:

Il client http dovrebbe essere transitorio o singleton?
Il client http dovrebbe essere transitorio o singleton?

Video: Il client http dovrebbe essere transitorio o singleton?

Video: Il client http dovrebbe essere transitorio o singleton?
Video: Учебное пособие по Blazor C# — часть 3 | Внедрение зависимостей Blazor | Синглтон Сервис | Временная служба 2024, Maggio
Anonim

La classe HttpClient è più adatta come singleton per un dominio app singolo. Ciò significa che il singleton deve essere condiviso tra più classi contenitore. Con questa tattica, ottieni un singleton, ma questo rende difficile la condivisione. La classe HttpClient implementa l'interfaccia IDisposable.

Dobbiamo creare una nuova singola istanza di HttpClient per tutte le richieste?

Sebbene implementi l'interfaccia IDisposable, in re altà è un oggetto condiviso. Ciò significa che sotto le coperture è rientrante e sicuro per i fili. Invece di creare una nuova istanza di HttpClient per ogni esecuzione, dovresti condividere una singola istanza di HttpClient per l'intera durata dell'applicazione.

Dovresti riutilizzare

HttpClient è destinato a essere istanziato una volta e riutilizzato per tutta la durata di un'applicazione. L'istanziazione di una classe HttpClient per ogni richiesta esaurirà il numero di socket disponibili con carichi pesanti. Ciò comporterà errori SocketException.

HttpClient non è gestito?

Sebbene HttpClient implementi indirettamente l'interfaccia IDisposable, l'uso standard di HttpClient non prevede di eliminarlo dopo ogni richiesta. L'oggetto HttpClient è destinato a rimanere attivo per tutto il tempo necessario all'applicazione per effettuare richieste

HttpClient è thread-safe?

HttpClient è completamente thread-safe quando viene utilizzato con un gestore di connessione thread-safe come MultiThreadedHttpConnectionManager. … Allo stesso tempo, l'istanza HttpClient e il gestore della connessione dovrebbero essere condivisi tra tutti i thread per la massima efficienza.

Consigliato: