c# – 确定待定的终结器源
发布时间:2020-12-15 17:20:34 所属栏目:百科 来源:网络整理
导读:我正在进入一个已知问题的项目.应用程序挂起对GC.WaitForPendingFinalizers的调用.显而易见的解决方案是删除WaitForPendingFinalizers调用,但不幸的是,这是在第三方程序集中为我们完成的,因此删除不是一个选项. 相反,我想找到问题的根源,并找出谁的终结器阻
我正在进入一个已知问题的项目.应用程序挂起对GC.WaitForPendingFinalizers的调用.显而易见的解决方案是删除WaitForPendingFinalizers调用,但不幸的是,这是在第三方程序集中为我们完成的,因此删除不是一个选项.
相反,我想找到问题的根源,并找出谁的终结器阻止.然而,代码库很大,因为我只是进入它,它也是陌生的,所以我甚至没有任何直觉或直觉的可能性.这意味着我将需要使用intrumentation和工具来帮助找到它. 所以我的问题是: >迭代Finalizer队列的框架/ ee线程是否会出现在Studio的Threads视图中?堆栈跟踪对于找到我们挂起的位置有很长的路要走. 解决方法
我快速浏览了VS(VS 11),当我休息时,我可以看到一个名为“GC Finalizer Thread”的线程,它在我的析构函数中捕获了一个Sleep().
但是你提到的CF可能会让它成为一个完全不同的球赛. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |