private void reconnect() { Thread.Sleep(20000); //检测线程启动延时 while (!form1.IsClose) { for (int i = 0; i < form1.Xtreaderlist.Count; i++) // XReaderInitList是所有已注册的reader { XtiveReaderInitClass CurInitR = form1.Xtreaderlist[i]; RFIDInterface CurR = CurInitR.reader; //Test //bool flag = CurR.Check(); //System.Console.WriteLine(CurR.ip + " " + CurR.Check() + CurR.ReConnectCount); //if (!CurR.Check() && CurR.ReConnectCount < CurInitR.errCountOfLoadTagData) //if (!flag) if (!CurR.Check()) { if (CurR.ReConnectCount <= CurInitR.errCountOfLoadTagData || reconnectCntSet.Contains(CurR.ReConnectCount)) { Thread tipThread = new Thread(new ParameterizedThreadStart(reconnectTips)); tipThread.IsBackground = true; tipThread.Start(CurR); CurR.ReConnect(CurR.ip); } else if (!(bool)AlertState[CurR.ip]) { Thread connectThread = new Thread(new ParameterizedThreadStart(reconnectWait)); connectThread.IsBackground = true; //connectThread.Priority = ThreadPriority.Lowest; connectThread.Start(CurR); CurR.ReConnectCount++; } else { CurR.ReConnectCount++; } } } Thread.Sleep(15000); //检测频率15s } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { EPRuntime epRuntime = prefilter.getEPRuntime(); while (ismonitor) { if (this.Xtreaderlist.Count > 0) { foreach (XtiveReaderInitClass curInitR in Xtreaderlist) // XReaderInitList是所有已注册的reader { RFIDInterface curR = curInitR.reader; if ((bool)reconnectThread.AlertState[curR.ip] || !curR.Check()) { continue; //检测跳过 } bool bResult = curR.LoadTagData(ref xtaglist, ref recordcount); if (recordcount > 0) { for (int i = 0; i < recordcount; i++) { rfiddata.XtiveTag tag = xtaglist[i]; epRuntime.SendEvent(tag); //发送事件到预过滤处理引擎 } } else { //strResult = "No Tag! \r\n"; } } } Thread.Sleep(this.readFre); //读取数据频率 } }