Example #1
0
 private void ThreadReConnect()
 {
     while (true)
     {
         if (!TcpControl.Connected)
         {
             TcpControl.TcpClient_Init();
         }
         Thread.Sleep(1000);
     }
 }
Example #2
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            PubObject.PubObjectInit(imageList2);
            IList <Service.Model.YY_RTU_Basic> rtus = null;

            ExecCommandList.LC = new List <Command>();


            ExecServiceList.Lsm = Program.wrx.XMLObj.LsM; //读取服务信息
            buttonItem1.Text   += "[" + ProName + "]";


            AddControls();               //根据xml文件动态添加服务显示灯控件
            TcpControl.TcpClient_Init(); //tcp与服务交互初始化


            PublicBD.Path = Program.xmlpath;
            PublicBD.ReInit();
            //连接数据库
            if (PublicBD.ConnectState)
            {
                //得到RTU列表
                rtus = Service.PublicBD.db.GetRTUList("");
                //得到命令列表
                ExecCommandList.Commands = Service.PublicBD.db.GetRTUCommandList();
                //得到命令临时表中的要发送的召测命令
                ExecRTUList.SetLrdm(rtus);

                //提示可能是自动入库的测站信息
                AlertFomrShow(rtus);

                //显示数据窗体控件
                buttonItem_dataShow_Click(null, null);
            }
            else
            {
                //显示系统设置窗体控件
                buttonItem_SetSystem_Click(null, null);
            }



            ////根据服务在线状态更新服务显示灯
            Thread updcontrols = new Thread(new ThreadStart(ThreadUpdControls));

            // 设置为背景线程,主线程一旦退出,该线程也不等待而立即结束
            updcontrols.IsBackground = true;
            updcontrols.Start();



            //添加明文数据
            Thread adddata = new Thread(new ThreadStart(ThreadAddData));

            // 设置为背景线程,主线程一旦退出,该线程也不等待而立即结束
            adddata.IsBackground = true;
            adddata.Start();


            Thread ReConnect = new Thread(new ThreadStart(ThreadReConnect));

            ReConnect.IsBackground = true;
            ReConnect.Start();
        }