2017-02-08 1 views
0

Я разрабатываю большое приложение WinForm и испытываю некоторые утечки памяти. Одна из проблем заключалась в закрытии формы, которая не освобождала память (я использовал .NET Memory Profiler). Некоторые люди предположили, что обработчики событий должны быть удалены из формы вручную, чтобы предотвратить утечку памяти. Означает ли это, что мне нужно удалить Load, Form_Closing обработчики событий, которые были созданы дизайнером при закрытии формы? Я использую .NET 4.5. Спасибо!Должен ли я удалить Load, Form_Closing обработчики событий, когда форма закрывается, чтобы предотвратить утечку памяти?

ответ

-1

Нет. Озабоченность обработчиками событий заключается в том, что объект, выполняющий обработчик, ссылается на объект с помощью метода, что означает, что если объект, который запускает событие, будет жить намного дольше, чем объект с чтобы объект с обработчиком не мог быть очищен.

Нет никаких проблем с объектом, уволяющим событие, имеющее гораздо более короткий срок службы, чем объект, обрабатывающий событие, поскольку объект, обрабатывающий событие, не имеет ссылки на объект, запускающий событие.

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