ConcurrentQueue队列

Posted hanszimmer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConcurrentQueue队列相关的知识,希望对你有一定的参考价值。

队列代表了一个先进先出的对象集合。当需要对各项进行先进先出的访问时,考虑到队列。当在列表中添加一项,为入队,从列表中移除一项时,为出队。

ConcurrentQueue<T>队列是一个高效的线程安全的队列(.net Framework 4.0)

对列的初始化:

ConcurrentQueue<ApiLogContract> Queue = new ConcurrentQueue<ApiLogContract>();

Queue.Enqueue(model);  //单条入队列

List<ApiLogContract> list = new List<ApiLogContract>();    //多条出列

list.add(new model{});

list.add(new model{});

list.ForEach(t =>Enqueue(t));

ApiLogContract apiLog = null;    //单条出队

Queue.TryDequeue(out apiLog);

var logs = new List<ApiLogContract>();      //多条出队

if(Queue.Count>0)

{

  for(int i = 0;i++;i<count;i++)
  {

    var source = Dequeue();

    if(source != null)
    {  

      logs.Add(source);
    }
  }
}

 






以上是关于ConcurrentQueue队列的主要内容,如果未能解决你的问题,请参考以下文章

生产消费模式:多线程读写队列ConcurrentQueue

C#:高效的线程安全队列ConcurrentQueue<T>

Task+ConcurrentQueue多线程编程

evpp性能测试: 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试

evpp性能测试: 对无锁队列boost::lockfree::queue和moodycamel::ConcurrentQueue做一个性能对比测试

C#多线程开发-并发集合中的ConcurrentQueue