Я сделал приятное приложение winforms 2.0, и он отлично работает, а клиенты по-прежнему счастливы, но, к сожалению, я не могу решить одну проблему. Проблема в том, что после использования приложения в течение нескольких часов gdi пользователь обрабатывает номер, растет и растет, и, наконец, процесс не может выделить больше объектов и сбоев приложений ...обнаружение утечек gdi/user handler в winforms
Я не делаю ничего необычного, это обычное приложение, несколько форм, несколько более модальных форм, несколько datagridviews и множество tablelayoutpanels, где я добавляю много ярлыков и текстовых полей.
Моих вопросов:
- есть какая-либо «рекомендуемая-практика» относительно добавления/удаления регулярной системы управления на формах во время выполнения (DGV/TLP)
- как обнаружить систему ручка утечки - предпочтительно с использованием визуальной студии и вид бесплатного плагина
Спасибо за ваши советы. Можете ли вы порекомендовать мне какие-либо инструменты/VS-плагины, которые могут помочь отслеживать/обнаруживать утечки в исходном коде? – tomo
@tomo, Опять же, нет, я не знаю таких инструментов. Я немного разобрался, потому что у меня были проблемы, похожие на те, с которыми вы сталкиваетесь. Решая их, это привело меня к советам выше. –
Формы, входящие в приложение MDI, также должны иметь функцию Dispose(), которая называется вручную: два условия, когда форма не расположена на закрытии, это когда (1) она является частью приложения с интерфейсом нескольких документов (MDI) и форма не видна; и (2) вы отобразили форму с помощью ShowDialog. В этих случаях вам нужно будет вручную вызвать Dispose, чтобы отметить все элементы формы для сбора мусора. –