public void AddData(CData oData) { lock (m_lst) { m_lst.Add(oData); } }
private void RecvThread(object obj) { while (true) { CData odata = new CData(); bool bOk = DataMgr.Get_DataMgr().Getdata(out odata); if (bOk) { List <List <string> > ff = odata.m_lstdata; List <string> oCols = odata.m_colName; //进行数据处理 } Thread.Sleep(3000);//每3秒钟检测一次内存缓冲区 } }
public bool Getdata(out CData oData) { oData = new CData(); lock (m_lst) { if (null != m_lst && m_lst.Count > 0) { oData = m_lst[0]; m_lst.RemoveAt(0); return(true); } else { return(false); } } }
private void OnRecvData(string sdata) { if (sdata.Length < 12 && sdata == "login") { } else if (sdata.Length >= 12 && sdata[0] == 'W' && sdata[1] == 'J') { uint iClientNo; uint iBodylen = 0; int iFuncNo; if (JsonOp.UnPacketHead(sdata, out iFuncNo, out iClientNo, out iBodylen)) { switch (iFuncNo) { case (int)enumFunctionNo.LogIn: { string errStr; if (JsonOp.UnpacketResult(sdata, out errStr)) { m_iClientNo = (uint)iClientNo; m_Form1.DispMsg("enumFunctionNo.LogIn ok :" + errStr); } else { m_Form1.DispMsg("enumFunctionNo.LogIn error"); } } break; case (int)enumFunctionNo.ConnectSql: { string errStr; if (JsonOp.UnpacketResult(sdata, out errStr)) { m_iClientNo = (uint)iClientNo; m_Form1.DispMsg("enumFunctionNo.ConnectSql ok: " + errStr); } else { //error tips m_Form1.DispMsg("enumFunctionNo.ConnectSql error: " + errStr); } } break; case (int)enumFunctionNo.ExcSelectCmd: { if (sdata.Length == 12) { m_Form1.DispMsg("enumFunctionNo.ExcSelectCmd empty data"); } else { List <List <string> > lstdata; // = new List<List<string>>(); string errStr; JsonOp.UnpacketDBdata(sdata, out lstdata, out errStr); if (lstdata.Count > 0) { CData odata = new CData(); odata.m_lstdata = lstdata; DataMgr.Get_DataMgr().AddData(odata); m_Form1.DispMsg("enumFunctionNo.ExcSelectCmd get data sucee"); } else { m_Form1.DispMsg("enumFunctionNo.ExcSelectCmd get data error:" + errStr); } } } break; default: break; } } } }