J'ai une application simple WPF unique contient des boîtes de texte et des boutons. Et j'utilise aussi notificon et DateTimePicker des formulaires Windows dans WPF Window. Comment puis-je éliminer efficacement toutes les commandes? p>
4 Réponses :
Je dirais que la même règle s'applique dans les applications WPF comme dans toutes les autres applications .NET: Si un objet implémente Idisposable code>, vous devez appeler
Disposer code> lorsque vous avez terminé En l'utilisant. Si vous chargez et déchargez de manière dynamique des contrôles, et ils ne mettent pas implémenter
Idisposable code>, définissez simplement toutes les références à
NULL code> (et détacher tous les gestionnaires d'événements) doivent être suffisants pour le collecteur des ordures pour faire son travail. p>
Si ce contrôle fait partie de certains IContainer (c'est le modèle commun dans .NET) que vos contrôles nécessitent juste une implémentation de l'état idéal. Ainsi disposera () sera appelé automatiquement quand il est approprié du temps. P>
À peine quelque chose dans WPF a un Une discussion sur sur les forums Microsoft. P>
Il y a quelques points qui doivent être pour une fenêtre Dispose code> méthode. La grande majorité des classes encapsulent des informations purement gérées. Vous pouvez joindre un objet dans l'arborescence (par exemple via un
enfants.add code> méthode) et vous pouvez le supprimer - c'est la manière dont la gestion de l'état fonctionne. Il ne rentre pas exactement dans le modèle code> Idisposable code>, car une fois que vous avez supprimé un contrôle, vous pouvez l'ajouter à nouveau, alors que
Dispose code> signifie pour toujours (bien que vous puissiez utiliser
Disposer code> pour le gérer en plus de
Ajouter code> /
Supprimer code> méthodes). P>
Idisposables CODE> mais ne sont pas, comme
DISPATCHERTIMER CODE>, et il n'y a rien à vous empêcher de mettre en œuvre
Idisposable code > Sur vos propres cours. C'est à vous de décider quand appeler
disposer code>; Fondamentalement, lorsque vous savez que vous n'allez plus utiliser l'objet. P>
code> Vous venez d'appeler
Fermer code> pour le fermer et WPF prend soin de tout le reste. P>
adhérer à CA1001 : Laissez le type de possession de la propriété Idisposable .
Renoncer aux anciens formes Windows Vérité que tous les contrôles sont Dispose code> vous-même. P>