Я создаю службу Windows .NET, которая использует неуправляемую C ++ DLL.
и мой сервис, и dll c ++ используют многопоточность.
У меня заканчивается память через некоторое время (часы) во время обработки.
Я пытался измерить количество потоков, используя «Счетчики производительности»
и я отслеживаю следующие значения:
# of current logical Threads
# of current recognized threads
# of total recognized Threads
В то время как первое устойчиво и его значение разумно, второе и третье нет.
они всегда растут и достигают огромного количества (более 1500).
И они равны !!!!
Должны ли они быть равными? Я также не понял из этой страницы , будут ли эти счетчики считать как управляемые, так и неуправляемые потоки.
Я подозреваю, что неуправляемый код всегда запускает новые потоки, а не использует их повторно, но я не уверен.
кто-нибудь может помочь?
Спасибо