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

    }

  • 相关阅读:
    GridView编辑删除取消完整代码
    添加删除组件里没有IIS
    关于网站开发中存在的问题
    网络公司网站源码介绍Version1.0
    IIS 状态代码
    收藏常用的快捷方式
    连接池已经满的解决方案
    Do you choose a experienced employee with highsalary or a inexperienced employee with lowsalary?
    Registered Permanent residence/attitude for sports
    数据缓存依赖
  • 原文地址:https://www.cnblogs.com/jeff151013/p/11739258.html
Copyright © 2011-2022 走看看