Один из моих исполняемых файлов открывает около 330 дескрипторов, когда он запускается один.Где, когда он запускается в сочетании с другим конкретным процессом, он пропускает много дескрипторов.
Я использовал утилиту 'handle' от sysinternals, чтобы проверить, какие все дескрипторы открыты в обоих случаях.Когда этот процесс запускается в сочетании с другим конкретным процессом, он имеет следующую дополнительную запись дескриптора.
578: Process
57C: Thread
580: Process
584: Thread
588: Process
58C: Thread
590: Event
598: Process
59C: Thread
5A0: Process
5A4: Thread
5A8: Process
5AC: Thread
5B0: Process
5B4: Thread
5B8: Event
Таким образом, он имеет 400 дополнительных открытых дескрипторов для Process, Thread, Event.В конечном итоге эта утечка приводит к сбою приложения.
Я новичок в программировании Windows, извините, пожалуйста, я задаю очень простые вопросы.Я буду очень признателен за любую помощь / предложение в этом отношении.
- Что означает или что означает ручка «Процесс», в каком случае она будет открыта?
- Что означает ручка«Поток» указывает или означает, в каком случае он будет открыт?
- Почему комбинация двух процессов вызывает утечку ручки?(эти процессы в основном независимы)
- Что я могу попытаться понять, такое поведение?
- Есть ли какие-либо предложения по устранению подобных ситуаций?
- Любые полезные инструменты для пониманиядальше?