我正在构建一个使用非托管 C++ dll 的 .NET Windows 服务。我的服务和 c++ dll 都使用多线程。在处理过程中一段时间(数小时)后,我的内存不足。我尝试使用“性能计数器”测量线程数,并监控以下值:
# of current logical Threads
# of current recognized threads
# of total recognized Threads
虽然第一个是稳定的,它的价值是合理的,但第二个和第三个却不是。他们一直在增长并达到一个巨大的数字(超过 1500 个)。他们是平等的!!!!
他们应该平等吗?如果这些计数器将同时计算托管线程和非托管线程,我也无法从该页面了解。
我怀疑非托管代码总是启动新线程而不是重用它们,但我不确定。
谁能帮忙?谢谢