Je viens de me rendre compte, en lisant certaines questions et réponses sur StackOverflow, que l'ajout de gestionnaires d'événements à l'aide de l'option +=
en C# (ou, je suppose, dans d'autres langages .net) peut provoquer des fuites de mémoire courantes...
J'ai souvent utilisé des gestionnaires d'événements de ce type dans le passé, sans me rendre compte qu'ils pouvaient provoquer, ou ont provoqué, des fuites de mémoire dans mes applications.
Comment cela fonctionne-t-il (c'est-à-dire, pourquoi cela provoque-t-il une fuite de mémoire) ?
Comment puis-je résoudre ce problème ? Est-ce que l'utilisation de -=
au même gestionnaire d'événement ?
Existe-t-il des modèles de conception communs ou des meilleures pratiques pour gérer des situations de ce type ?
Exemple : Comment suis-je censé gérer une application qui comporte de nombreux threads différents, utilisant de nombreux gestionnaires d'événements différents pour déclencher plusieurs événements sur l'interface utilisateur ?
Existe-t-il des moyens simples et efficaces de contrôler ce processus dans une grande application déjà construite ?