Ejemplo n.º 1
0
 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
     {
     }
 }
Ejemplo n.º 2
0
        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();
                }
            });
        }