IHostMemoryManager::GetMemoryLoad 方法

获取由宿主报告的当前正在使用(以及不可用)的物理内存量。

HRESULT GetMemoryLoad (
    [out] DWORD*  pMemoryLoad, 
    [out] SIZE_T  *pAvailableBytes
);

参数

  • pMemoryLoad
    [out] 一个指向当前正在使用的总物理内存的近似百分比的指针。

  • pAvailableBytes
    [out] 一个指向可供公共语言运行时 (CLR) 使用的字节数的指针。

返回值

HRESULT

说明

S_OK

GetMemoryLoad 已成功返回。

HOST_E_CLRNOTAVAILABLE

CLR 尚未加载到进程中或者处于无法运行托管代码或成功处理调用的状态。

HOST_E_TIMEOUT

调用超时。

HOST_E_NOT_OWNER

调用方不拥有锁。

HOST_E_ABANDONED

事件在被阻止的线程或纤程正在等待它时被取消。

E_FAIL

发生了未知的灾难性故障。 如果某方法返回 E_FAIL,CLR 便无法再在进程中使用。 对宿主方法的后续调用都将返回 HOST_E_CLRNOTAVAILABLE。

备注

GetMemoryLoad 包装 Win32 GlobalMemoryStatus 函数。 pMemoryLoad 的值是从 GlobalMemoryStatus 返回的 MEMORYSTATUS 结构中 dwMemoryLoad 字段的等效项。

运行时将该返回值用作垃圾回收器的启发方法。 例如,如果主机报告目前使用了大部分内存,则垃圾回收器会选择从多代中进行回收,以增加潜在的可以使用的内存量。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**MSCorEE.h

**库:**作为一项资源包含在 MSCorEE.dll 中

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

System.GC

IHostMemoryManager 接口