private void ThreadReConnect() { while (true) { if (!TcpControl.Connected) { TcpControl.TcpClient_Init(); } Thread.Sleep(1000); } }
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(); }