diff --git a/src/Core/Services/NavisworksInstanceManager.cs b/src/Core/Services/NavisworksInstanceManager.cs index 8c4c89c..4b09000 100644 --- a/src/Core/Services/NavisworksInstanceManager.cs +++ b/src/Core/Services/NavisworksInstanceManager.cs @@ -252,18 +252,21 @@ namespace NavisworksTransport.Core.Services { if (!process.HasExited) { - process.CloseMainWindow(); - if (!process.WaitForExit(10000)) + // 🔥 直接强制关闭(不优雅退出):副实例是临时检测进程(检测已完成、报告已回传), + // 动画/高亮修改过文档 → 优雅关闭会弹出“模型文件已修改,是否保存”对话框, + // 模态弹窗阻塞 WaitForExit 直到超时(10 秒)——拖慢批处理。 + // Kill(TerminateProcess)不触发该弹窗;句柄由进程退出释放(下方 WaitForExit 等待)。 + process.Kill(); + if (!process.WaitForExit(5000)) { - process.Kill(); - LogManager.Warning($"[实例管理] 副实例未优雅退出,已强制关闭(端口 {handle.Port})"); + LogManager.Warning($"[实例管理] 副实例强杀后未及时退出(端口 {handle.Port})"); } } // 确保进程完全退出(释放模型文件句柄,供调用方清理工作目录) if (!process.HasExited) { - process.WaitForExit(10000); + process.WaitForExit(5000); } } catch (Exception ex)