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 { }

如果有更好的方法,求助!万分感谢!

posted @ 2025-05-14 16:28  嘻嘻哈哈555  阅读(158)  评论(0)    收藏  举报