public static void ApplicationExit() { try { GC.Collect(); IOMonitorManager.Stop(); IOMonitorManager.Close(); Application.ExitThread(); Application.Exit(); Process[] pross = Process.GetProcessesByName(Application.ProductName); for (int i = 0; i < pross.Length; i++) { pross[i].Kill(); } } catch { } }
public static void LoadProject(TreeView tree) { AppendLogItem("正在加载采集站工程......"); MonitorDataBaseModel.InitBaseModel(); AppendLogItem("正在加载驱动信息......"); IOMonitorManager.InitMonitor(); AppendLogItem("正在加载IO树......"); Task.Run(() => { try { if (tree.Parent.IsHandleCreated) { tree.BeginInvoke(new EventHandler(delegate { tree.Nodes.Clear(); int num = MonitorDataBaseModel.IOCommunications.Count * MonitorDataBaseModel.IODevices.Count; InitProgress(num); IoServerTreeNode serverNode = new IoServerTreeNode(); serverNode.Server = MonitorDataBaseModel.IOServer; serverNode.InitNode(); List <Scada.Model.IO_COMMUNICATION> serverComms = MonitorDataBaseModel.IOCommunications.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID); for (int c = 0; c < serverComms.Count; c++) //通道 { IoCommunicationTreeNode commNode = new IoCommunicationTreeNode(); commNode.Communication = serverComms[c]; commNode.Server = MonitorDataBaseModel.IOServer; commNode.InitNode(); List <Scada.Model.IO_DEVICE> commDevices = MonitorDataBaseModel.IODevices.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID); for (int d = 0; d < commDevices.Count; d++) //设备 { IoDeviceTreeNode deviceNode = new IoDeviceTreeNode(); deviceNode.Device = commDevices[d]; deviceNode.Server = MonitorDataBaseModel.IOServer; deviceNode.Communication = serverComms[c]; deviceNode.InitNode(); commNode.Nodes.Add(deviceNode); SetProgress(); } SetProgress(); serverNode.Nodes.Add(commNode); } serverNode.Expand(); EndProgress(); tree.Nodes.Add(serverNode); })); } } catch (Exception exm) { DisplyException(exm); FrmDialog.ShowDialog(MainForm, exm.Message); EndProgress(); } }); }