Пример #1
0
 public ConcurrentBoundedBlockingQueue(IManualResetEvent queueIsFullEvent, TimeSpan waitTimeout, int maxItemCount)
     : base(maxItemCount)
 {
     _queueIsFullEvent = queueIsFullEvent;
     _waitTimeout      = waitTimeout;
     _queueIsFullEvent.Reset();
 }
Пример #2
0
        public void Reset()
        {
            lock (syncRoot)
            {
                Value = default(T);
                IsSet = false;
            }

            waitHandle.Reset();
        }
 public override bool TryEnqueue(T value)
 {
     while (!base.TryEnqueue(value))
     {
         if (!_queueIsFullEvent.Wait(_waitTimeout))
         {
             return(false);
         }
         _queueIsFullEvent.Reset();
     }
     return(true);
 }