C# 向远程服务器发送消息的更好方法
我正在寻找一种更好的方式来发送消息(性能方面) 我有如下消息循环:C# 向远程服务器发送消息的更好方法,c#,multithreading,performance,C#,Multithreading,Performance,我正在寻找一种更好的方式来发送消息(性能方面) 我有如下消息循环: while (true) { if (_outboundMessages.Count == 0) { Thread.Sleep(100); continue; } var message = _outboundMessages.Dequeue(); SendMessage(message, _tra
while (true)
{
if (_outboundMessages.Count == 0)
{
Thread.Sleep(100);
continue;
}
var message = _outboundMessages.Dequeue();
SendMessage(message, _tradeStreamSSL);
}
我有其他线程可以随意向消息队列添加消息。
我想避免使用Thread.Sleep(100),我考虑过AutoResetEvent/ManualResetEvent(消息循环将等待来自其他线程的信号),但很有可能出现争用条件
注意:需要记住的重要规则是,每一条消息都必须尽可能快地广播。
有什么想法吗
谢谢 这是一个很好的用例:
private BlockingCollection\u outboundMessages;
私有void ConsumerThread()
{
//这将阻止,直到新消息排队
foreach(在_outboundMessages.GetConsumingEnumerable()中的变量项)
{
SendMessage(message,_tradeStreamSSL);
}
}
我不知道消息什么时候会出现。这与用户无关。
private BlockingCollection<Message> _outboundMessages;
private void ConsumerThread()
{
// This will block until new messages are queued
foreach (var item in _outboundMessages.GetConsumingEnumerable())
{
SendMessage(message, _tradeStreamSSL);
}
}