Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么GC.AddMemoryPressure会死锁/挂起?_C#_.net_Garbage Collection - Fatal编程技术网

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

C# 为什么GC.AddMemoryPressure会死锁/挂起?,c#,.net,garbage-collection,C#,.net,Garbage Collection,已解决:结果表明受影响的计算机已安装.NET 4.5 beta 我有一个使用.NET4的C#应用程序,它在调用 GC.AddMemoryPressure(12000000) 由于它是一个生产应用程序,我不能真正共享任何代码-但是我想得到一些关于GC.AddMemoryPressure挂起原因的提示 文档提示: 您必须确保完全消除您所承受的压力 添加如果不这样做,可能会对系统的性能产生不利影响 长时间运行的应用程序中的系统 这意味着您必须非常小心地在这两个调用之间进行平衡: AddMemory

已解决:结果表明受影响的计算机已安装.NET 4.5 beta


我有一个使用.NET4的C#应用程序,它在调用

GC.AddMemoryPressure(12000000)

由于它是一个生产应用程序,我不能真正共享任何代码-但是我想得到一些关于GC.AddMemoryPressure挂起原因的提示

文档提示:

您必须确保完全消除您所承受的压力 添加如果不这样做,可能会对系统的性能产生不利影响 长时间运行的应用程序中的系统

这意味着您必须非常小心地在这两个调用之间进行平衡:

AddMemoryPresure
removemorypresure

顺便说一句,建议您在分配大量非托管资源时使用它,通过这种方式,向
GC
发出信号,告知它必须同时计算内存量


在大量的案例中,简单的
Dispose()
Finalize()
正确的管理就足够了。

我不会搞手工GC。确保您的资源在使用后得到处置和完成。GC手动可能会使系统出错。NET可以很好地管理GC,只要程序中的对象被删除。

谢谢您的输入

结果表明,受影响的计算机安装了.NET4.5beta

似乎它并没有陷入僵局,因为一个核心已经完全饱和。对AddMemoryPressure的调用似乎在函数clr中结束!CNameSpace::GcScanRoots从未返回

卸载4.5测试版和安装.NET 4似乎已经解决了这个问题


如果这确实是问题所在,那么我当然希望MS在发布之前解决它。

您是否有匹配的RemoveMemoryPressure呼叫?为什么会有人不加评论地否决这个问题?看起来在.NET4.5RTM中这可能仍然是个问题。