Logo da.boatexistence.com

Skal httpclient være forbigående eller singleton?

Indholdsfortegnelse:

Skal httpclient være forbigående eller singleton?
Skal httpclient være forbigående eller singleton?

Video: Skal httpclient være forbigående eller singleton?

Video: Skal httpclient være forbigående eller singleton?
Video: Stop using the HttpClient the wrong way in .NET 2024, Kan
Anonim

HttpClient-klassen er mere egnet som singleton for et enkelt app-domæne. Dette betyder, at singletonen skal deles på tværs af flere containerklasser. Med denne taktik får du en singleton, men det gør det svært at dele. HttpClient-klassen implementerer IDisposable-grænsefladen.

Skal vi oprette en ny enkelt forekomst af HttpClient til alle anmodninger?

Selv om det implementerer IDisposable-grænsefladen, er det faktisk et delt objekt. Det betyder, at den under betrækkene er genindtrædende og gevindsikker. I stedet for at oprette en ny forekomst af HttpClient for hver kørsel, bør du dele en enkelt forekomst af HttpClient i hele programmets levetid.

Skal du genbruge

HttpClient er beregnet til at blive instantieret én gang og genbrugt i hele en applikations levetid. Ved at instansiere en HttpClient-klasse for hver forespørgsel vil antallet af tilgængelige stikkontakter udtømmes under tung belastning. Dette vil resultere i SocketException-fejl.

Er HttpClient ikke-administreret?

Selvom HttpClient indirekte implementerer IDisposable-grænsefladen, standardbrugen af HttpClient er ikke at bortskaffe den efter hver anmodning. HttpClient-objektet er beregnet til at leve, så længe din applikation skal lave

Er

HttpClient er fuldt trådsikker, når bruges med en trådsikker forbindelsesmanager såsom MultiThreadedHttpConnectionManager. … Samtidig bør HttpClient-instansen og forbindelsesadministratoren deles mellem alle tråde for maksimal effektivitet.

Anbefalede: