C# queue 多线程读取 求方法 送上100分
client1=====>requestclient2=====>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#