В нашем приложении .Net 4.0 есть утечка, которая приводит к сбою после продолжительного использования. После расследования я определил, что «Пользовательские объекты» просачивались. Объект пользователя — это ресурс Windows, как описано здесь:
http://msdn.microsoft.com/en-us/library/ms725486%28v=VS.85%29.aspx
Windows выделяет 10 000 пользовательских объектов на процесс. Другие ресурсы Windows, такие как объекты GDI и дескрипторы, остаются постоянными во время работы приложения.
Я нашел аналогичный вопрос для C ++, где для решения требовалось загрузить пакет под названием «обход» из исследования Microsoft — подвох? 10 тысяч долларов.
Я ПОДОЗРЕВАЮ, что с помощью профилировщика памяти Ant это связано с меню. Мы используем меню из SyncFusion, поэтому жизненный цикл вещей, связанных с меню, нельзя найти, заглянув в код. Так что это может быть ошибка, которую SynFusion должен решить.
У кого-нибудь есть аналогичная утечка с использованием меню SyncFusion? Ants говорит мне, что некоторые объекты PopupMenu остаются, но Ants не дает информации о том, как найти, где создаются объекты (и, таким образом, определить, где их удалить).
Утечка/обходы, упомянутые в упомянутом выше посте SO, выглядят интересными, потому что, похоже, они перехватывают определенные вызовы для выделения объекта USER.
Предложения приветствуются
onchange
или что-то в этом роде, перезаписывающее другое ваше меню. У меня были утечки с syncfusion Edit в прошлом, и при их устранении казалось, что это было довольно строго с правильной утилизацией. - person Jan-Peter Vos   schedule 03.06.2011