Пример #1
0
        public LockFreeQueue()
        {
            var firstElement = new LockFreeQueueItem <T>();

            _head = firstElement;
            _tail = firstElement;
        }
Пример #2
0
        public void Enqueue(T item)
        {
            var newItem = new LockFreeQueueItem <T>(item);

            _tail.Next = newItem;

            Interlocked.Exchange(ref _tail, newItem);
        }
Пример #3
0
 public LockFreeQueueItem(T data = null, LockFreeQueueItem <T> next = null)
 {
     Data = data;
     Next = next;
 }