Мне нужно использовать сообщения из очереди MQ, а затем закрыть мое консольное приложение при завершении использования очереди.Я не знаю, когда сообщения находятся в очереди.Чтение, которое я могу успешно выполнить, однако я не знаю, когда я закончу использовать очередь, оставляя мой поток открытым.Мне нужно знать, как я могу определить этот момент.
this.connection = cf.CreateConnection();
this.connection.ExceptionListener = new ExceptionListener(this.OnException);
this.session = this.connection.CreateSession(true, AcknowledgeMode.AutoAcknowledge); // sessão com controle de transação
IDestination destQueue = this.session.CreateQueue(filaMensagem);
this.consumer = this.session.CreateConsumer(destQueue);
// Create an AutoResetEvent for signalling between threads
using (this.receiveCompleteEvent = new AutoResetEvent(false))
{
// Create and register the listener
this.consumer.MessageListener = new MessageListener(this.OnNewMessageCallback); // Callback for message handling
// Start the connection
this.connection.Start();
// Block and wait for the receiveCompleteEvent event to be signalled.
this.receiveCompleteEvent.WaitOne();
}
// dispose receiveCompleteEvent
this.consumer.Close();
this.session.Close();
this.connection.Close();