gpt4 book ai didi

c# - 确定挂起的终结器源

转载 作者:行者123 更新时间:2023-11-30 12:34:13 24 4
gpt4 key购买 nike

我正在参与一个存在已知问题的项目。应用程序在调用 GC.WaitForPendingFinalizers 时挂起。明显的 solution 解决方法是删除 WaitForPendingFinalizers 调用,但不幸的是,这是在第三方程序集中为我们完成的,因此不能选择删除。

相反,我想找到问题的根源并弄清楚是谁的终结器在阻塞。然而,代码库很大,而且由于我刚刚接触它,它也不熟悉,所以我什至对它可能在哪里没有任何直觉或直觉。这意味着我将需要使用仪器和工具来帮助找到它。

所以我的问题是:

  1. 迭代终结器队列的框架/ee 线程是否会显示在 Studio 的线程 View 中?堆栈跟踪对于找到我们挂起的位置有很大帮助。
  2. 是否有一个工具可以向我显示待处理的终结器及其根(这是一个 CF 项目,但我愿意走很宽的路来尝试找到它)?
  3. 任何人有任何想法或经验想分享,以帮助找到这个?

最佳答案

我快速浏览了 VS (VS 11),当我中断时,我可以看到一个名为“GC Finalizer Thread”的线程,它在我的析构函数中执行 Sleep()。

但是您提到 CF 可能会使它成为一个完全不同的游戏。

关于c# - 确定挂起的终结器源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7613745/

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