我有一个托管在 IIS 中的 WCF 应用程序(用C#/.Net 4
. 随着时间的推移,进程的句柄计数以或多或少的线性方式增加(在进程循环之前增加到 30,000)。根据 SysInternals Process Explorer 的说法,该进程拥有的大部分句柄都是Thread
. 但是,根据性能监视器,线程数或多或少保持不变(大约 40)。
显然,我做错了什么并且正在泄漏Thread Handles
。但是,我不清楚 aThread Handle
在这种情况下到底是什么。我会假设它是一个线程的句柄,但由于线程数保持一致,我看不到句柄数是如何增加的。而且,我想不出任何方法来保持线程的句柄,而线程本身就消失了。此外,我没有明确地创建新线程(我正在使用ThreadPool
in 地方)。
显然,我错过了一些东西。但是什么?