我正在尝试调试 .Net 服务中的句柄泄漏,但我对线程句柄泄漏感到困惑。有人可以描述一下这是怎么发生的吗?任务管理器在每个测试周期后仅报告 22 个活动线程,但句柄数不断增加。
我在每个测试周期之后和获取句柄计数之前发送一条消息强制 GC。
当然,还有一个事件句柄泄漏,但这更容易解释/修复。
D:\log\SEEService>handle -p 82080 -s
Handle v3.46
Copyright (C) 1997-2011 Mark Russinovich
Sysinternals - www.sysinternals.com
Handle type summary:
ALPC Port : 8
Desktop : 1
Directory : 3
EtwRegistration : 35
Event : 97397
File : 36
IoCompletion : 3
Key : 38
KeyedEvent : 1
Mutant : 9
Section : 23
Semaphore : 15
Thread : 22845
Timer : 5
Token : 1
TpWorkerFactory : 4
WindowStation : 2
Total handles: 120426