示例#1
0
        public static ChoQueue BlockingQueue(ChoQueue queue)
        {
            if (queue == null)
            {
                throw new ArgumentNullException("queue");
            }

            return(new ChoBlockingQueue(queue));
        }
示例#2
0
        public static ChoQueue Synchronized(ChoQueue queue)
        {
            if (queue == null)
            {
                throw new ArgumentNullException("queue");
            }

            if (queue.IsBlockingQueue)
            {
                throw new ArgumentException("Can't synchronize the blocking queue.");
            }

            return(new ChoSynchronizedQueue(queue));
        }
示例#3
0
        public static ChoQueue Synchronized(ChoQueue queue, object syncObject)
        {
            if (queue == null)
            {
                throw new ArgumentNullException("queue");
            }

            if (queue.IsBlockingQueue)
            {
                throw new ArgumentException("Can't synchronize the blocking queue.");
            }

            ChoGuard.ArgumentNotNull(syncObject, "SyncObject");

            return(new ChoSynchronizedQueue(queue, syncObject));
        }
示例#4
0
 internal ChoBlockingQueue(ChoQueue q)
 {
     _queue = q;
 }
示例#5
0
 internal ChoSynchronizedQueue(ChoQueue q, object syncObject)
 {
     _queue    = q;
     _syncRoot = syncObject;
 }
示例#6
0
 internal ChoSynchronizedQueue(ChoQueue q) : this(q, q.SyncRoot)
 {
 }
示例#7
0
 // Methods
 internal ChoQueueEnumerator(ChoQueue q)
 {
     _q     = q;
     _index = q == null || q.Count == 0 ? -1 : 0;
 }