2010-07-09 9 views
2

Depuis WebControls héritent de contrôle qui implémentent IDisposable. Est-il nécessaire d'appeler Dispose ou d'encapsuler ces WebControls dans l'utilisation des instructions pour éviter les fuites de mémoire ou ASP.NET gère-t-il automatiquement cela?WebControls et IDisposable

+1

Possible Dupe: [Pourquoi devrais-je appeler Dispose sur les contrôles ASP.Net] (http://stackoverflow.com/questions/3150735/why-would-i-need-to-call-dispose-on-asp -net-controls) – Toby

Répondre

0

ASP.NET le gère. Il doit depuis la disposition d'un contrôle qui est attaché à l'arbre de contrôle aura des conséquences inattendues. Vous ne savez pas quand il est vraiment fait avec l'arbre, il est donc préférable de laisser ASP.NET s'en débarrasser quand c'est fait. Maintenant, si vous ne l'attachez pas à l'arbre de contrôle, c'est quelque chose de différent, mais je suppose que c'est un vrai cas extérieur.

+0

C'est ce que je pensais. Merci Kevin! – Brian

2

Ne disposez que de ce que vous avez créé. Vous ne créez pas les instances de contrôle, comme le fait le moteur d'exécution ASP.NET, vous ne devez donc pas interférer avec leur durée de vie.

1

La plupart du temps, il n'est pas nécessaire d'appeler explicitement la méthode Dispose() d'un objet. Le GC le fera pour vous quand il le faut.

Il peut être conseillé de le faire dans des processus très gourmands en mémoire afin d'accélérer le travail du GC, mais sinon il sera appelé indépendamment, sans votre intervention, à un moment donné.