В корпоративном решении моей компании я стараюсь устранить как можно больше утечек памяти.
У нас есть BaseCaptureForm, который наследуется многими другими формами (например, PracticeCaptureForm). Во всей системе (например) эта Рекомендация CaptureForm вызывается модально (ShowDialog ()). Теперь, насколько мне известно, когда формы открываются модально, они должны быть заключены в оператор using или удалены после завершения.
В BaseCaptureForm есть метод dispose, который никогда не срабатывает. Я вставил финализатор, и он тоже не попал. ANTS Memory Profiler показывает, что все эти формы сохраняются в памяти.
Есть ли у кого-нибудь предложения о том, как я могу избавиться от этих форм захвата (которые не открыты все это время), чтобы остановить утечку памяти? В системе миллионы вызовов ShowDialog, и мне было интересно, сталкивался ли кто-нибудь еще с этой проблемой?
Редактировать
Чтобы уточнить, есть ли что-то, что я могу сделать в BaseCaptureForm для автоматического удаления после закрытия? Я не могу пройти через все вызовы ShowDialog () в надежде избавиться от них.
Вызов метода dispose в событии OnClosed формы вызывает неприятное мерцание.