Я только что понял, прочитав некоторые вопросы и ответы по StackOverflow, что добавление обработчиков событий, использующих +=
в C # (или, я полагаю, другие языки .net), может вызывать общие утечки памяти ...
В прошлом я много раз использовал подобные обработчики событий и никогда не понимал, что они могут вызвать или вызвали утечки памяти в моих приложениях.
Как это работает (имеется в виду, почему это на самом делевызвать утечку памяти)?Как я могу решить эту проблему?Достаточно ли использовать -=
для одного и того же обработчика событий?Существуют ли общие шаблоны проектирования или лучшие практики для обработки подобных ситуаций?Пример: как я должен обрабатывать приложение, которое имеет много разных потоков, используя много разных обработчиков событий для вызова нескольких событий в пользовательском интерфейсе?
Есть ли какие-нибудь хорошие и простые способы эффективно контролировать это в уже построенномбольшое приложение?