예제 #1
0
 public void AddData(CData oData)
 {
     lock (m_lst)
     {
         m_lst.Add(oData);
     }
 }
예제 #2
0
 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秒钟检测一次内存缓冲区
     }
 }
예제 #3
0
 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);
         }
     }
 }
예제 #4
0
        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;
                    }
                }
            }
        }