2010-06-03 3 views

ответ

18

Это важная часть из MSDN documentation, что вы должны принять во внимание

Чтобы предотвратить обработчик событий от быть вызван, когда событие подняли, просто отказаться от события. Чтобы предотвратить утечку ресурса , важно отказаться от подписки от событий, прежде чем уничтожить объект-подписчик . До тех пор пока вы не отписаться от события, групповой делегат , который лежит в основе события в объекте издательского имеет ссылку на делегат, который инкапсулирует событие обработчика абонента. Пока объект публикации сохраняет эту ссылку, ваш объект не будет мусором собран.

2

Важно отказаться от подписки на события. Если вы этого не сделаете, то абонент не сможет собрать мусор, что приведет к потере памяти. Вот хороший пример проблем, вы можете столкнуться, если вы не отписываться:

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

Кроме того, это может привести к проблемам производительности как обработчик события будет продолжать называть, даже если он не делает ничего полезного для вас.

С другой стороны, если вы просто закончили выполнение программы, тогда нет причин отказаться от подписки на события. Это, конечно, не обязательно, и я не вижу причин рекомендовать его.

Смежные вопросы