1

我正在使用 c# 中的消息队列。我正在通过计时器调用的代码(在主线程中设置)以及后台工作线程将消息发送到队列。如果我有两个消息队列实例,一个用于计时器,一个用于后台工作线程,我会遇到任何线程问题吗?我在使用消息队列的单个实例时遇到了问题。

4

1 回答 1

2

请参阅MSDN 上的消息队列

只有以下方法是线程安全的:BeginPeek、BeginReceive、EndPeek(IAsyncResult)、EndReceive(IAsyncResult)、GetAllMessages、Peek 和 Receive。

只要你坚持这些方法,你就可以(加上任何静态方法,除非明确标记为不是线程安全的)。

但是,MessageQueue 实例相当轻量级,因此您可以在需要时创建新实例(可能通过工厂来避免队列名称的全局变量)。

于 2009-04-01T13:20:58.207 回答