internal bool StopMQTT() { var res = false; try { res = UnLoadMQTTClient(); if (res) { if (this.IncomingMessageThread != null) { this.IncomingMessageThread.Suspend(); this.IncomingMessageThread.Resume(); this.IncomingMessageThread.Abort(); this.IncomingMessageThread = null; mQTTProcessState = MQTTProcessState.Stopped; // free the buffer MqttMsgPublishEventArgs e; while (IncomingMessage.Count > 0) { IncomingMessage.TryDequeue(out e); //label_MsgInQueue.Text = "" + IncomingMessage.Count; } } } } catch (Exception) { } return(res); }
private void StartProsess_IncomingMessage() { this.mQTTProcessState = MQTTProcessState.Started; while (mQTTProcessState != MQTTProcessState.Stopped) { // Dequeue if (IncomingMessage.Count > 0 && (mQTTProcessState == MQTTProcessState.Started || mQTTProcessState == MQTTProcessState.Completed)) { MqttMsgPublishEventArgs e; if (IncomingMessage.TryDequeue(out e)) { mQTTProcessState = MQTTProcessState.Processing; if (e != null && e.Message.Length > 0) { Process_IncomingMessage(e); } //label_MsgInQueue.BeginInvoke(new Action(() => // { // label_MsgInQueue.Text = IncomingMessage.Count.ToString(); // })); mQTTProcessState = MQTTProcessState.Completed; } } // Thread.Sleep(50); } }
internal bool StartMQTT() { var res = false; if (IsConnected && IsThreadLaunched(this.IncomingMessageThread)) { res = true; } else { if (CreateMQTTClient()) { StartProsessing(); res = true; } } mQTTProcessState = res ? MQTTProcessState.Connetion_Success : MQTTProcessState.Connetion_Failure; UpdateSate(); return(res); }