2012-05-05 4 views
0

В моем приложении я встречаю шрифт GDI и щетки. Как я могу найти созданные (и примечание) объекты в моем исходном коде?Ошибка утечки GDI + (шрифт, кисть)

У меня нет никаких toHFont вызовов, и весь доступ к Графике заключен в оператор using. Я знаю его кисть и шрифт из таких инструментов, как GDIView и .NET Memory Profiler, но они не говорят, где, где просочившийся объект был создан в моем исходном коде.

Я использую C# в VS2008, .NET 3.5.

+0

Как это вы не смогли найти с обзором кода. Наверняка вы используете их только в избранных местах вашего кода? В противном случае вам понадобится профилировщик * real * памяти, чтобы пройти этот горб, GDIView и .NET MP не соответствуют этому бару. Реальный = деньги. –

+0

Я использую шрифты с 'Graphics' и назначаю шрифт элементу управления. Кисти используются только в «Графика». Я также пытаюсь их повторно использовать, поскольку они часто являются статическими переменными, поэтому я не понимаю, какая утечка. – ZoolWay

+0

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

ответ

0

Хорошая практика заключается в том, чтобы обернуть ваши шрифты и кисти в Использование/Конец Использование блоков.

+0

Поскольку я снова и снова использую несколько кистей и шрифтов, я их поместил в статические переменные, так что они создаются реже и более повторно используются. Поэтому я не могу использовать их в блоках-блоках (что я стараюсь делать с каждым ресурсом, который реализует IDisposable). – ZoolWay