gpt4 book ai didi

.net - "Leaking"线程句柄

转载 作者:行者123 更新时间:2023-12-04 08:52:50 26 4
gpt4 key购买 nike

我有一个托管在 IIS 中的 WCF 应用程序(用 C#/.Net 4 编写)。随着时间的推移,进程的句柄计数或多或少以线性方式增加(在进程回收之前增加到 30,000)。根据 SysInternals Process Explorer,该进程拥有的大部分句柄类型为 Thread .但是,根据性能监视器,线程数或多或少保持不变(大约 40)。

显然,我做错了什么并且正在泄漏 Thread Handles .但是,我不清楚究竟是什么 Thread Handle是在这种情况下。我会假设它是一个线程的句柄,但由于线程数保持一致,我看不到句柄数是如何增加的。而且,当线程本身消失时,我想不出任何方法来保持线程的句柄。此外,我没有明确地创建新线程(我在某些地方使用了 ThreadPool)。

显然,我错过了一些东西。但是什么?

最佳答案

可以有终止线程的句柄。所以线程被创建,终止,但句柄仍然存在。

启动进程监视器 (procmon.exe) 并将其设置为监听“进程和线程事件”(禁用文件、注册表和网络)。通过双击线程创建事件并查看堆栈来确定谁在创建线程。

那应该回答谁在创建线程的问题。他负责关闭 Handlebars 。

关于.net - "Leaking"线程句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com