2010-06-03 21 views

Odpowiedz

18

Jest to ważna część z MSDN documentation, które należy wziąć pod uwagę

Aby zapobiec obsługi zdarzeń z powołano gdy zdarzenie jest podniesiony, po prostu zrezygnować z imprezy . Aby zapobiec wyciekom zasobów , ważne jest, aby anulować subskrypcję ze zdarzeń przed pozbyciem się obiektu subskrybenta . Aż się wypisać z wypadku, multicast delegat, który leży u podstaw zdarzenie w obiekcie wydawniczym ma odniesienie do delegata że hermetyzuje zdarzeń obsługi abonenta. Dopóki publikowany obiekt przechowuje to odwołanie, Twój obiekt subskrybenta nie będzie zbiorem śmieci .

2

Ważne jest, aby zrezygnować z subskrypcji. Jeśli tego nie zrobisz, subskrybent nie będzie mógł zbierać śmieci, co prowadzi do - w gruncie rzeczy - wycieku pamięci. Tutaj jest dobrym przykładem problemów może napotkasz jeśli nie wypisać:

http://developers.slashdot.org/article.pl?sid=07/11/17/0552247

Ponadto, może to prowadzić do problemów z wydajnością, jak obsługi zdarzeń w dalszym ciągu będzie się nazywać, mimo że nie robi cokolwiek przydatnego dla ciebie.

Z drugiej strony, jeśli kończysz wykonywanie programu, nie ma powodu, aby rezygnować z wydarzeń. Z pewnością nie jest to obowiązkowe i nie widzę powodu, aby go polecać.

Powiązane problemy