c# - 为什么 GC.AddMemoryPressure 会死锁/挂起?

标签 c# .net garbage-collection

已解决:原来受影响的机器安装了 .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/

相关文章:

c# - C#需要一个嵌套数组初始化器,使用2维数组构建3维数组

c# - 如何解决找不到 system.serviceModel/serviceHostingEnvironment/serviceActivations 的问题。 iis 托管的 wcf 服务出错?

c# - 在 C# 中何时重新抛出异常?

javascript - 如何在 onTick 中调用 JavaScript 函数

c# - ASCII 将 Cr 和 Lf 更改为字符 "¬"和 "¶"

c# - 请问 GC.SuppressFinalize 有什么实质性影响吗?

c# - TPL.Dataflow - 在 ActionBlock<T> 中发生未经处理的异常时防止挂起

c# - 了解 .NET Web 服务

c# - CriticalFinalizerObject 用法误区?

java - 是否有缺少垃圾收集器的 JVM?