У меня есть приложение WinForms .Net, которое работает с большим количеством документов XPS (тысячи), и во время этого запуска количество дескрипторов (в соответствии с монитором процессов sysinternals и диспетчером задач) увеличивается на 3-10 для каждого документа. Я сильно подозреваю, что это дескрипторы, которые открываются и не закрываются библиотеками платформы MS .Net XPS, но я не могу их отследить.
Несмотря на пошаговое выполнение кода, количество дескрипторов увеличивается в разные моменты во время одного и того же запуска. Например, один проход через цикл и количество дескрипторов подскочит на 1 в одной строке, а в следующий раз может не измениться или может подскочить на 2. Поэтому я подозреваю, что компоненты XPS com имеют утечку дескрипторов.
Однако использование памяти в порядке, но если я буду продолжать изнурять дескрипторы, как это, я крашу приложение и, возможно, рабочий стол.
До сих пор я пробовал sysinternals process explorer смотреть на дескрипторы, но все они помечены как без подробностей. Также используется handle.exe от sysinternals, и это не показывает существенной разницы между моментальным снимком до, во время и после.
Любые подсказки о том, как отследить, куда идут ручки? Я думаю, что мне придется упростить тестирование до однопоточного консольного приложения.
С уважением
Райан