System.GC.AddMemoryPressure 方法

方法描述

通知运行时在安排垃圾回收时应考虑分配大量的非托管内存。

语法定义(C# System.GC.AddMemoryPressure 方法 的用法)

public static void AddMemoryPressure(
	long bytesAllocated
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
bytesAllocated System-Int64 已分配的非托管内存的增量。
返回值 void

提示和注释

在确定何时安排垃圾回收时,运行时将考虑分配多少托管内存。 如果一个小的托管对象分配了大量非托管内存,运行时将只考虑托管内存,从而低估安排垃圾回收的紧迫性。 AddMemoryPressure 方法会将这一对系统内存的额外压力通知运行时。

在最简单的用法模式下,托管对象将在构造函数中分配非托管内存,而在 Dispose 或 Finalize 方法中释放内存。 在分配非托管内存之后,将调用 AddMemoryPressure 方法,而在释放了非托管内存之后,将调用 RemoveMemoryPressure 方法。

在复杂一些的情形中,非托管内存的分配在托管对象的生存期内会出现非常大的变化,此时您可以调用 AddMemoryPressure 和 RemoveMemoryPressure 方法将这些增量更改传递到运行时。

警告

必须确保您移除的压力量与您添加的压力量完全相同。 如果不这样做会对长时间运行的应用程序的系统性能产生不利影响。

System.GC.AddMemoryPressure 方法例子


异常

异常 异常描述
ArgumentOutOfRangeException
  • bytesAllocated 小于或等于零。
  • 在 32 位的计算机上,bytesAllocated 大于 Int32.MaxValue。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。