| | |
| | | if (File.Exists(jsonFile)) File.Delete(jsonFile); |
| | | |
| | | WriteText(configFile, string.Format(JobConfig, outPath.Replace("\\", "\\\\"))); |
| | | ExecNavisworks(modelFile, configFile); |
| | | SysTask task = TaskDBHelper.CreateTask(args, meta, "BIM"); |
| | | ExecNavisworks(task, modelFile, configFile); |
| | | |
| | | File.Delete(configFile); |
| | | if (File.Exists(jsonFile)) |
| | |
| | | /// <summary> |
| | | /// 运行Navisworks |
| | | /// </summary> |
| | | public static void ExecNavisworks(string modelFile, string configFile) |
| | | public static void ExecNavisworks(SysTask task, string modelFile, string configFile) |
| | | { |
| | | Process p = null; |
| | | try |
| | |
| | | |
| | | // 启动进程 |
| | | p = Process.Start(RoamerExe, args); |
| | | task.pid = p.Id; |
| | | task.id = TaskDBHelper.Insert(task); |
| | | |
| | | // 让组件等候相关的进程进入闲置状态 |
| | | p.WaitForInputIdle(); |
| | | |
| | | // 让组件无限期地等待关联进程退出 |
| | | p.WaitForExit(); |
| | | |
| | | task.status = 2; |
| | | TaskDBHelper.Update(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); |
| | | if (task.id > 0 && task.status < 2) |
| | | { |
| | | task.err = ex.Message; |
| | | task.status = 4; |
| | | TaskDBHelper.Update(task); |
| | | } |
| | | } |
| | | finally |
| | | { |