我正在使用 c# 中的消息队列。我正在通过计时器调用的代码(在主线程中设置)以及后台工作线程将消息发送到队列。如果我有两个消息队列实例,一个用于计时器,一个用于后台工作线程,我会遇到任何线程问题吗?我在使用消息队列的单个实例时遇到了问题。
macleojw
问问题
2495 次
1 回答
2
请参阅MSDN 上的消息队列:
只有以下方法是线程安全的:BeginPeek、BeginReceive、EndPeek(IAsyncResult)、EndReceive(IAsyncResult)、GetAllMessages、Peek 和 Receive。
只要你坚持这些方法,你就可以(加上任何静态方法,除非明确标记为不是线程安全的)。
但是,MessageQueue 实例相当轻量级,因此您可以在需要时创建新实例(可能通过工厂来避免队列名称的全局变量)。
于 2009-04-01T13:20:58.207 回答