Это будет G-Collected? C # события - PullRequest
0 голосов
/ 04 июля 2011

У меня есть некоторые объекты, которые имеют публичные события, которые объекты «слушают», чтобы получать сообщения, проходящие через систему. Проблема в том, что объем памяти моих программ продолжает расти, и мне интересно, не удается ли GC собрать объекты, потому что другие объекты подписаны на его события

call.requestingHangup+=new CallEventHandler (Call_requestingHangup);

Теперь, если ничто иное не является именованной ссылкой на этот «Вызов», однако мы все еще подписаны на его событие, GC удалит его. Также существуют ли инструменты диагностики памяти для c #, такие как valgrind для нативного кода?

Спасибо

1 Ответ

0 голосов
/ 04 июля 2011

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

call.requestingHangup-=new CallEventHandler (Call_requestingHangup);

Пожалуйста, смотрите другой пост стекопоток , который объясняет это лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...