Bonjour,
Je m'explique je viens de découvrir qu'en dotnet en général le piège pour créer des fuites mémoire et le non désabonnement aux events.
Du coup mon applis en est truffé, et elle leak pas mal.
Donc je me pose la question : quel stratégie adoptez vous en Silverlight pour ne pas gérer votre mémoire??
Je bloque c'est sur le désabonnement des évènements?
Comment les gérer vous : au cas par cas??
Dans chaque vue vous avez une méthode Unsubcribe que vous appellez avant la destructions de l'objet??
Sur les objets qui ont bcp d'event vous écrivez une méthode permettant de désabonner tout les écouteurs??
Moi je dois vous avouer que je suis partit un peu dans les deux sens je m'explique : sur les objets de récupération de données (WCF) qui ont beaucoup d'event j'ai deux méthode :
- int UnsubscribeAll() désabonne de tout les évènement de l'objet tout les écouteur
- int UnsubcribeObject(object toUnsucribe) désabonne le listener de tout les évènement de l'objet(si il y ait accroché)
Et après sur chaque listener implemente IDisposable et dans la méthode dispose appelle les méthodes UnsubcribeObject.
Le problème c'est qu'il faut appelle les Dispose de tout ces objets, si on en oublie un et ben toute notre logique de désabonnement ne sert plus a rien.
Dans les cas ou je sais qu'il ne doit plus y avoir d'évènement accroché sur mes objects à event j'exécute UnsubscribeAll.
Avez vous quelque chose de mieux?
Car j'ai l'impression d'avoir fait bien compliquer pour être sur de ne pas avoir de fuites mémoire.
Partager