我是使用ActiveMQ和C#的初学者。我创建了一个带有一个按钮和一个标签的简单Windows窗体。当我点击按钮时,我向队列发送一条消息,标签用我刚刚发送的消息进行初始化。当然,我可以直接初始化我的标签,但我希望我的表单宁愿使用队列中的消息来更新我的标签。处理我刚刚用ActiveMQ和C发送的消息#
问题是我没有设法处理消息以相同的形式更新我的标签。我的消费者代码根本没有被调用,但是它在我的表单的Load事件中被初始化。 下面的代码
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
InitializeHandlerAMQ();
}
private void InitializeHandlerAMQ()
{
Tchat tchat = null;
IDestination dest = _session.GetQueue(QUEUE_DESTINATION);
using(IMessageConsumer consumer = _session.CreateConsumer(dest))
{
IMessage message;
while((message = consumer.Receive(TimeSpan.FromMilliseconds(2000))) != null)
{
var objectMessage = message as IObjectMessage;
if(objectMessage != null)
{
tchat = objectMessage.Body as Tchat;
if (tchat != null)
{
textBox2.Text += string.Format("{0}{1}", tchat.Message, Environment.NewLine);
}
}
}
}
}
如果我闭上窗口的形式和重新启动它,然后我的标签以及更新,但我不希望将其关闭并重新打开它。
你有什么想法的家伙?
另一个资源:“.NET中的ActiveMQ(示例聊天应用程序)”https://code.msdn.microsoft.com/windowsapps/ActiveMQ-in-NET-Sample-9406441a –