8
votes

Quand appeler la méthode Dispose () dans l'application WPF

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?


0 commentaires

4 Réponses :


1
votes

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 , vous devez appeler Disposer 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 , définissez simplement toutes les références à NULL (et détacher tous les gestionnaires d'événements) doivent être suffisants pour le collecteur des ordures pour faire son travail.


0 commentaires

0
votes

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.


0 commentaires

6
votes

À peine quelque chose dans WPF a un Dispose 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 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 Idisposable , car une fois que vous avez supprimé un contrôle, vous pouvez l'ajouter à nouveau, alors que Dispose signifie pour toujours (bien que vous puissiez utiliser Disposer pour le gérer en plus de Ajouter / Supprimer méthodes).

Une discussion sur sur les forums Microsoft.

Il y a quelques points qui doivent être Idisposables mais ne sont pas, comme DISPATCHERTIMER , et il n'y a rien à vous empêcher de mettre en œuvre Idisposable Sur vos propres cours. C'est à vous de décider quand appeler disposer ; Fondamentalement, lorsque vous savez que vous n'allez plus utiliser l'objet.

pour une fenêtre Vous venez d'appeler Fermer pour le fermer et WPF prend soin de tout le reste.


0 commentaires

1
votes

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 Idisposable . Implémenter et appeler Dispose vous-même. xxx


0 commentaires