static public void InitReadBuffer() { CLog.WriteBuffer("Включаем буффер"); ReadThBool = true; ReadTh = new Thread(ReadBuffer); ReadTh.Start(); }
static private void ReadBuffer() { Settings set; set = new Settings("DataBrCode.xml"); while (ReadThBool) {//А тут занимаеся чтением буффера try { if (BufferOracle != null) { if (countBuffer > 0) { if (_ModeNetTerminal) {//Если мы в онлайн то работаем try { foreach (var elem in BufferOracle) { switch (elem.TypeOperation) { case TypeClassBuffer.POST_EU_LIST_Warehouse: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_LIST_Warehouse"); BufferOper_POST_EU_LIST_Warehouse e = (BufferOper_POST_EU_LIST_Warehouse)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } case TypeClassBuffer.POST_EU_LIST_TASKMOVE: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_LIST_TASKMOVE"); BufferOper_POST_EU_LIST_TASKMOVE e = (BufferOper_POST_EU_LIST_TASKMOVE)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } case TypeClassBuffer.POST_EU_IN_AGR: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_IN_AGR"); BufferOper_POST_EU_IN_AGR e = (BufferOper_POST_EU_IN_AGR)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } case TypeClassBuffer.POST_EU_LIST_SHIP: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_LIST_SHIP"); BufferOper_POST_EU_LIST_SHIP e = (BufferOper_POST_EU_LIST_SHIP)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } case TypeClassBuffer.POST_EU_LIST_RZDN_AGR: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_LIST_RZDN_AGR"); BufferOper_POST_EU_LIST_RZDN_AGR e = (BufferOper_POST_EU_LIST_RZDN_AGR)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } case TypeClassBuffer.POST_EU_LIST_INVERT_MX: { ///Операция размещения CLog.WriteBuffer("Операция POST_EU_LIST_INVERT_MX"); BufferOper_POST_EU_LIST_INVERT_MX e = (BufferOper_POST_EU_LIST_INVERT_MX)elem.BufOperatoon; e.StartOperation(set.AdressAppServer); //Удаление и вычитание BufferOracle.Remove(elem); countBuffer--; break; } } ///Для теста Thread.Sleep(100); } } catch (System.Net.WebException) {//На случай если во время выполнения сломается связть ModeNetTerminalB = false; } catch (System.Net.Sockets.SocketException) {//На случай если во время выполнения сломается связть ModeNetTerminalB = false; } } else {//тут тестируем онлайн мы или нет и устанваливаем статус _ModeNetTerminal = testConnect(set.AdressAppServer); if (!_ModeNetTerminal) { Thread.Sleep(1000); } } } } Thread.Sleep(100); } catch (Exception ex) { CLog.WriteException("BufferToBD", "ReadBuffer", ex.Message); } } }