当前位置:编程学习 > C#/ASP.NET >>

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

client1=====>request
client2=====>request
.      ======>request
.      =======>request
clientn========>request


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

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

--------------------编程问答-------------------- --------------------编程问答-------------------- 假设你使用ConcurrentQueue<T>,那么工作线程中你可以:

while(true)
{
   T message;
   if (concurrentQueue.TryDequeue(out message))
   {
      // 根据message的参数,例化不同的processor,并进行处理。
   }
   else
   {
      if (shutDownEvent.WaitOne(TimeSpan.FromSeconds(5))
      {
         break;
      }
   }
}

--------------------编程问答-------------------- 这个网上应该有列子http://download.csdn.net/detail/u011223070/6579199 --------------------编程问答-------------------- 可以考虑这样:

事先准备多个Processor, 为每个Processor启动一个工作线程,再配以一个工作队列,
每个Processor依次处理自己的工作队列。

然后另外开一个线程就可以了,
从公共的queue中把请求分配到各个Processor的工作队列。

补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,