Maison >développement back-end >C++ >HttpClient et HttpClientHandler devraient-ils être éliminés entre les demandes?
.net httpclient et httpclienthandler: disposer entre les demandes?
dans .NET Framework 4.5 et ultérieurement, System.Net.Http.HttpClient
et System.Net.Http.HttpClientHandler
implément IDisposable
via System.Net.Http.HttpMessageInvoker
. Les meilleures pratiques dictent l'utilisation de déclarations using
pour une élimination appropriée des objets IDisposable
. Cependant, les conseils de Microsoft Personnel et des experts communautaires suggèrent que l'élimination explicite des instances HttpClient
est souvent inutile et pourrait même être contre-productive.
De nombreuses discussions en ligne et articles de blog mettent en évidence le manque de conséquences négatives, et même des inconvénients potentiels, de l'omission d'appels Dispose()
. Fait intéressant, la documentation officielle de Microsoft et les exemples de code évitent généralement la disposition explicite de HttpClient
et HttpClientHandler
.
Pourquoi l'implémentation IDisposable
?
L'implémentation IDisposable
existe pour faciliter le nettoyage et la gestion des ressources dans des situations où les objets ne sont plus nécessaires. Cependant, c'est rarement une préoccupation dans les scénarios d'utilisation typiques.
Analyse des exemples de code:
L'échantillon de code fourni démontre une approche sûre en utilisant try-finally
des blocs dans les instructions using
. Cela garantit l'élimination même si des exceptions se produisent.
Résumé:
Bien que HttpClient
et HttpClientHandler
soient conçus avec IDisposable
à l'esprit, le consensus dominant est que l'élimination explicite est généralement redondante. Les contraintes de ressources peuvent justifier l'élimination, mais elle ne devrait pas être considérée comme une pratique standard. Suivant l'exemple de Microsoft et l'utilisation de modèles sûrs et efficaces sans appels explicites Dispose()
est généralement recommandé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!