zoukankan      html  css  js  c++  java
  • .NET C# 泛型队列

    1.QueueHelper

    using System.Collections.Concurrent;
    using System.Runtime.CompilerServices;

    namespace WindowsFormsServer.Helper
    {
        public static class QueueHelper<T> where T : class
        {
            private static ConcurrentQueue<StrongBox<T>> _queue;

            public static ConcurrentQueue<StrongBox<T>> Queue
            {
                get { return _queue ?? (_queue = new ConcurrentQueue<StrongBox<T>>()); }
            }

            public static void AddQueue(T t)
            {
                if (_queue == null)
                    _queue = new ConcurrentQueue<StrongBox<T>>();
                _queue.Enqueue(new StrongBox<T>(t));
            }

            public static T DealQueue()
            {
                if (_queue == null)
                    _queue = new ConcurrentQueue<StrongBox<T>>();
                if (_queue.Count > 0)
                {
                    StrongBox<T> t;
                    if (_queue.TryDequeue(out t)) return t.Value;   
                }
                return null;
            }

            public static void EmptyQueue()
            {
                if (_queue == null)
                    _queue = new ConcurrentQueue<StrongBox<T>>();
                StrongBox<T> t;
                while(_queue.TryDequeue(out t))
                    t.Value = default(T);
            }

        }
    }
    2.使用方式:

    //①.入队列

    List<T> ts = new List<T>();

    xxx //此处批量为ts集合赋值

    foreach(var t in ts){

    QueueHelper<T>.AddQueue(t);//入队列

    }

    //②.出队列

    while(QueueHelper<T>.Queue.Count>0){

    T tempT = QueueHelper<T>.DealQueue();

    xxx //业务代码处理tempT

    }

  • 相关阅读:
    Oracle数据库对表字段的操作命令
    解决eclipse中git中cannot open gituploadpack(无法打开Git上传包)问题
    C# 启动外部程序的几种方法
    php面试题及答案(转)
    每日知识(1)半结构化数据
    每日知识(2)云计算
    方法对象
    什么是MA移动平均线它的特点及应用
    My first testcase about C#&C++
    局部变量的角色
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11739258.html
Copyright © 2011-2022 走看看