C# queue 多线程读取 求方法 送上100分

黄瓜黄瓜 2013-11-25 11:13:31
client1=====>request
client2=====>request
. ======>request
. =======>request
clientn========>request


有很多客户端的请求,到Service端 有一个公共的queue 来存储这些请求

我需要多线程来读取这个队列,然后交给不同的Processor去处理。(根据Request 不同的参数实例化不同的processor 业务处理)

...全文
350 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtdb 2013-11-25
  • 打赏
  • 举报
回复
可以考虑这样: 事先准备多个Processor, 为每个Processor启动一个工作线程,再配以一个工作队列, 每个Processor依次处理自己的工作队列。 然后另外开一个线程就可以了, 从公共的queue中把请求分配到各个Processor的工作队列。
wyufen 2013-11-25
  • 打赏
  • 举报
回复
这个网上应该有列子http://download.csdn.net/detail/u011223070/6579199
gomoku 2013-11-25
  • 打赏
  • 举报
回复
假设你使用ConcurrentQueue<T>,那么工作线程中你可以:
while(true)
{
   T message;
   if (concurrentQueue.TryDequeue(out message))
   {
      // 根据message的参数,例化不同的processor,并进行处理。
   }
   else
   {
      if (shutDownEvent.WaitOne(TimeSpan.FromSeconds(5))
      {
         break;
      }
   }
}

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧