/// <summary> /// 开启采集线程的线程 /// </summary> private void StartConnectThread() { for (int ii = 0; ii < m_cnclist.Count; ii++) { CNC cncref = m_cnclist[ii]; CollectHNCData m_hcncdatanade = new CollectHNCData(ref cncref, ref _ncDatas); m_gatherHNCLst.Add(m_hcncdatanade); } for (int ii = 0; ii < m_gatherHNCLst.Count; ii++) { m_gatherHNCLst[ii].ThreadStart(); } //m_bEventThreadRunning = true; m_connectThread.Start(); threaFucEvent.Set(); }
public void StartCollectBase(Int16 clientNo) { string macSN = ""; int ret = 0; //开启一个线程隔N长事件收集一次 HNCData result = ncDatas.Find( delegate(HNCData temp) { return(temp.sysData.clientNo == clientNo); } ); if (result == null) { return; } ret = m_Instance.HNC_SystemGetValue((int)HNCAPI.HncSystem.HNC_SYS_SN_NUM, ref macSN, clientNo); if (ret != 0) { return; } CollectHNCData colresult = gatherHNCLst.Find( delegate(CollectHNCData temp) { return(String.Equals(temp.hncdata.sysData.macSN, macSN, StringComparison.Ordinal)); } ); if (colresult == null)//没有重复机床,第一次加入 { // CollectHNCData gatherHdata = new CollectHNCData(result); // gatherHNCLst.Add(gatherHdata); // gatherHdata.ThreadStart(); } else //以前有过同SN的机床 { if (colresult.collectThread == null) { // colresult.bCollect = true; // colresult.ThreadStart(); } } }
public void StopCollectBase(short clientNo) { String sLogInfo = String.Empty; CollectHNCData result = gatherHNCLst.Find( delegate(CollectHNCData temp) { return(temp.hncdata.sysData.clientNo == clientNo); }); if (result == null) { return; } else { // sLogInfo = "Client disconnect but no ncdata matched! clientNo = " + clientNo.ToString(); // LogApi.WriteLogInfo(MainForm.logHandle, (Byte)ENUM_LOG_LEVEL.LEVEL_WARN, sLogInfo); } CNC cncItem = m_cnclist.Find( delegate(CNC temp) { return(temp.ip == result.hncdata.sysData.addr.ip && temp.port == result.hncdata.sysData.addr.port); }); if (cncItem != null) { //cncItem.HCNCShareData = null; // cncItem.isConnect = false; } result.bCollect = false; result.collectThread.Join(); result.hncdata.sysData.clientNo = -1; // sLogInfo = "Client disconnect! clientNo = " + clientNo.ToString() // + "ip = " + cncItem.ip + "port = " + cncItem.port.ToString(); // LogApi.WriteLogInfo(MainForm.logHandle, (Byte)ENUM_LOG_LEVEL.LEVEL_WARN, sLogInfo); }