已解决:原来受影响的机器安装了 .NET 4.5 beta。
我有一个使用 .NET4 的 C# 应用程序在对
的调用中无限期死锁/挂起GC.AddMemoryPressure(12000000)
由于它是一个正在生产的应用程序,我不能真正共享任何代码 - 但是我想获得一些关于可能导致 GC.AddMemoryPressure 挂起的提示。
最佳答案
感谢您的输入。
事实证明,受影响的机器安装了 .NET 4.5 beta。
看来并没有死锁,因为一个核心已经完全饱和了。对 AddMemoryPressure 的调用似乎在函数 clr!CNameSpace::GcScanRoots 中结束,该函数从未返回。
卸载 4.5 beta 并安装 .NET 4 似乎解决了问题。
如果这确实是问题所在,那么我当然希望 MS 在发布前修复它。
关于c# - 为什么 GC.AddMemoryPressure 会死锁/挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10596145/