Solidworks频繁打开关闭装配体内存占用异常
通过调用solidworksAPI打开装配体文件
swModel = (ModelDoc2)swApp.OpenDoc(filePath, (int)swDocumentTypes_e.swDocASSEMBLY)
swApp.CloseDoc(filePath);
导致solidworks占用内存越来越大,并提示
并且经过检查发现,内存占用接近2GB
难道说!2GB是solidworks崩溃的边缘?那么在多线程时,solidworks崩溃更加频繁,是否是这个原因?
针对这个问题的临时解决方案,来自于
https://www.ugsnx.com/thread-212423-1-1.html
通过增加虚拟内存的方式解决
此外,在外围,我定义了一个检测solidworks内存占用的方法,用于监测solidworks内存,当超过阈值时,重新启动solidworks
swApp = Utility.ConnectToSolidWorks();
var solidWorksProcesses = GetSolidWorksProcesses();
try
{
foreach (Process process in solidWorksProcesses)
{
process.Refresh(); // 刷新进程信息
long memory = process.WorkingSet64;
if (memory > SolidWorksMemoryLimit)
{
Console.WriteLine($"SolidWorks 内存占用过高({memory / (1024 * 1024)} MB),正在重启...");
process.Kill();
process.WaitForExit(Timeout);
Process.Start(path);
swApp = Utility.ConnectToSolidWorks();
}
}
}
catch { }
如果有更好的方法,求助!万分感谢!