.NET httpclient und httpclientHandler: zwischen Anfragen entsorgen?
In .NET Framework 4.5 und später, System.Net.Http.HttpClient
und System.Net.Http.HttpClientHandler
implementieren IDisposable
über System.Net.Http.HttpMessageInvoker
. Best Practice diktiert mit using
Anweisungen zur ordnungsgemäßen Entsorgung von IDisposable
Objekten. Ratschläge von Microsoft -Personal und Community -Experten deuten jedoch darauf hin, dass die expliziten Entsorgung von HttpClient
Instanzen oft unnötig ist und sogar kontraproduktiv ist.
Viele Online -Diskussionen und Blog -Beiträge unterstreichen die mangelnden negativen Folgen und sogar potenziellen Nachteile, indem sie Dispose()
Anrufe weglassen. Interessanterweise vermeiden offizielle Beispiele für Microsoft -Dokumentationen und Code im Allgemeinen eine explizite Entsorgung von HttpClient
und HttpClientHandler
.
Warum die IDisposable
Implementierung?
Die IDisposable
Implementierung besteht, um die Reinigung und Verwaltung der Ressourcen in Situationen zu erleichtern, in denen die Objekte nicht mehr benötigt werden. Dies ist jedoch selten ein Problem bei typischen Nutzungsszenarien.
Code -Beispielanalyse:
Die bereitgestellte Code -Probe zeigt einen sicheren Ansatz unter Verwendung von try-finally
-Blockungen in using
Anweisungen. Dies garantiert die Entsorgung, auch wenn Ausnahmen auftreten.
Zusammenfassung:
Während HttpClient
und HttpClientHandler
im Hinblick auf IDisposable
ausgelegt sind, besteht der vorherrschende Konsens darin, dass explizite Entsorgung normalerweise überflüssig ist. Ressourcenbeschränkungen können die Entsorgung rechtfertigen, sollte jedoch nicht als Standardpraxis angesehen werden. Das Beispiel für Microsoft und die Verwendung sicherer, effizienter Muster ohne explizite Dispose()
-Aufrufe wird im Allgemeinen empfohlen.
Das obige ist der detaillierte Inhalt vonSollten Httpclient und HttpclientHandler zwischen Anfragen entsorgt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!