【发布时间】:2018-10-21 18:44:58
【问题描述】:
我正在寻找一种更好的方式来发送消息(性能方面)。
我的消息循环如下:
while (true)
{
if (_outboundMessages.Count == 0)
{
Thread.Sleep(100);
continue;
}
var message = _outboundMessages.Dequeue();
SendMessage(message, _tradeStreamSSL);
}
我有其他线程随意将消息添加到消息队列中。 我想避免 Thread.Sleep(100),我考虑过 AutoResetEvent/ManualResetEvent(消息循环将等待来自其他线程的信号),但很有可能发生竞争条件。
注意:要记住的重要规则,每条消息都必须尽快广播。
有什么想法吗?
谢谢!!
【问题讨论】:
-
我不知道消息什么时候会出现。这与用户无关。
标签: c# multithreading performance