protected override int StateResponse(int state, object obj) { int iRes = 0; ItemQueue itemQueue = Peek; EvtToFormMain?.Invoke(new object[] { StatesMachine.MESSAGE_TO_STATUSSTRIP , FormMain.StatusStrip.STATE.Action , string.Format(@"WriterHandlerQueue - обработка события {0}", ((StatesMachine)state).ToString()) }); switch ((StatesMachine)state) { case StatesMachine.NEW: // самый старый набор для постановки в очередь на запись, _writer.Request((DATASET_WRITER)obj); break; case StatesMachine.LIST_DEST: // получены параметры соединения БД, ответа не требуется case StatesMachine.CONNSET_USE_CHANGED: case StatesMachine.OPTION: // //Ответа не требуется/не требуют обработки результата break; case StatesMachine.LIST_DATASET: // отправить главному окну(для отображения) информацию о поученных/обработанных наборах с данными case StatesMachine.DATASET_CONTENT: // отправить главному окну(для отображения) информацию о выбранном для отображения в главном окне //case StatesMachine.STATISTIC: // статический объект (obj = null) if ((!(itemQueue == null)) //&& (!(itemQueue.m_dataHostRecieved == null)) FormMain не реализует интерфейс 'IDataHost' ) { // вариант для объекта с интерфейсом 'IDataHost' //itemQueue.m_dataHostRecieved.OnEvtDataRecievedHost(new object[] { state, obj }) EvtToFormMain?.Invoke(new object[] { state, obj }) ; } else { ; } break; default: break; } //Debug.WriteLine(string.Format(@"WriterHandlerQueue::StateResponse(state={0}) - ...", ((StatesMachine)state).ToString())); return(iRes); }