System.GC.RemoveMemoryPressure 方法
方法描述
通知运行时已释放非托管内存,在安排垃圾回收时不需要再考虑它。
语法定义(C# System.GC.RemoveMemoryPressure 方法 的用法)
public static void RemoveMemoryPressure( long bytesAllocated )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
bytesAllocated | System-Int64 | 已释放的非托管内存量。 |
返回值 | void |
提示和注释
在确定何时安排垃圾回收时,运行时将考虑分配多少托管内存。 如果一个小的托管对象分配了大量非托管内存,运行时将只考虑托管内存,从而低估安排垃圾回收的紧迫性。 AddMemoryPressure 方法会将这一对系统内存的额外压力通知运行时,而 RemoveMemoryPressure 方法则通知运行时已释放额外压力。
在最简单的用法模式下,托管对象将在构造函数中分配非托管内存,而在 Dispose 或 Finalize 方法中释放内存。 在分配非托管内存之后,将调用 AddMemoryPressure 方法,而在释放了非托管内存之后,将调用 RemoveMemoryPressure 方法。
在复杂一些的情形中,非托管内存的分配在托管对象的生存期内会出现非常大的变化,此时您可以调用 AddMemoryPressure 和 RemoveMemoryPressure 方法将这些增量更改传递到运行时。
警告
必须确保您移除的压力量与您添加的压力量完全相同。 如果不这样做会对长时间运行的应用程序的系统性能产生不利影响。
System.GC.RemoveMemoryPressure 方法例子
异常
异常 | 异常描述 |
---|---|
ArgumentOutOfRangeException |
|
版本信息
.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 系统要求。