private void EnqueueMessage(IKdmMessage message) { lock (this) { this.messageQueue.Enqueue(message); } }
private void ListenMessageQueue() { Log.Info("KDM Device protocol message queue listener thread is started"); this.threadsStarted = true; while (this.working) { var message = this.DequeueMessage(); if (message != null) { this.OnProcessMessage = message; this.SendMessageOperationCode(); while (!message.IsMessageProcessingCompleted) { Thread.Sleep(1); // Wait for the message to be processed } } else { // If there is no message, sleep for a while Thread.Sleep(10); } } Log.Info("KDM Device protocol message queue listener thread is disposed"); this.IsStopped = true; }