SOLIDWORKS运行中GDI句柄不足警告的处理方法
在长时间使用SOLIDWORKS或PDM时,计算机右下角,会弹出如下图报错,提示“GD可用句柄不足”的警告信息。往往出现提示之后,伴随的就是软件运行卡顿,或直接崩溃、闪退等问题。
原因在于,在Windows 系统中显示图形对象和格式化文本的大多数进程使用图形设备接口 (GDI) 句柄。每个进程默认有 10,000 个 GDI 句柄的限制。如果超出限制,进程将不稳定并挂起或崩溃。例如,如果打开列出文件和文件夹图标和图像的许多 Windows 资源管理器对话框,“Explorer.exe”进程可能会达到 10,000 个 GDI 句柄并崩溃。
因为用于在 SOLIDWORKS PDM 文件库中处理文件的主要接口是 Windows 资源管理器文件库视图,超过 GDI 句柄限制通常会导致 SOLIDWORKS PDM 崩溃。
为了避免此类崩溃,可以关闭 Windows 资源管理器对话框(或受影响的进程)释放 GDI 句柄。
从SOLIDWORKS PDM 2019 版本开始,“Edmserver.exe”进程(系统托盘中的 SOLIDWORKS PDM 图标)将监视多个进程,并在可用 GDI 句柄变少时显示警告。
当监视的进程达到 8500 个 GDI 句柄时,SOLIDWORKS PDM 会显示以下警告:
“警告!可用 GDI 句柄对于进程 ID 为 [ID] 的进程“Explorer.exe”较低。”
当监视的进程达到 9000 个 GDI 句柄时,警告会变为严重警告并反复显示,直到您将 GDI 句柄减少到 9000 以下。
“为避免资源管理器不稳定,请关闭其他资源管理器窗口以释放资源或重新启动进程”
可通过修改以下注册表项控制应在何时显示 GDI 句柄阈值警告:
“HKEY_CURRENT_USER\Software\Solidworks\Applications\PDMWorksEnterprise\Vaults\_-Global\Settings”
使用以下名称创建 DWORD 值:
•“GDI+Danger_Threshold”– 常规警告显示的 GDI 句柄数。
•“GDI_Warning_Threshold”– 常规警告显示的 GDI 句柄数。
•“MonitorGDIFrequency(sec)”– 检查 GDI 句柄阈值的频率。
最后,需要注意的一点是,编辑注册表可能严重损坏操作系统。操作之前务必备份好注册表数据,然后再对注册表做出更改。