Bonjour
tentant de débuger une fuite mémoire dans mon logiciel, je crois que je suis en train de découvrir une chose qui me térrifie (car je ne l'ai absolument pas gérée).
J'ai l'impression que si mon objet s'abonne à l'event de quelque chose de persistant. Alors mon objet ne sera jamais détruit.
exemple :
Pourriez vous confirmer cette théorie?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class MaClasse1() { public MaClasse1(IContent obj) { obj.UnEvent +=new EventHandler(Test); } private void Test(object sender,EventArg e) { //blablabla } } public class Program { public static void Main() { IContent content = new Content(); MaClasse1 obj = new MaClasse1(content); obj = null; // Bien que obj etait l'unique référent l'instance n'est pas détruite. //Plein de choses se passent, pour moi l'instance de MaClasse1 n'est plus, et pourtant : content.DeclencheEvent(); //Fait que l'ex obj recoit l'event alors qu'il est cencé etre détruit ... } }
Merci
Partager