public void Process() { AnyFailrue = false; AnySuccess = false; if (_processor == null) { return; } foreach (TEvent @event in _queue) { var result = _processor(@event); AnyFailrue |= !result; AnySuccess |= result; if (_maxPoolSize == UnlimitedPool || _pool.Count < _maxPoolSize) { _pool.Enqueue(@event); } } foreach (TEvent @event in _queue) { foreach (PostEvent signal in _postEvents) { signal(@event); } } _queue.Clear(); ResetObjects(); }
public TEvent Post() { TEvent @event = _pool.Any() ? _pool.Dequeue() : new TEvent(); _queue.Enqueue(@event); return(@event); }
public static Framework.UniqueQueue <T> EnqueueRange <T>(this Framework.UniqueQueue <T> queue, IEnumerable <T> range) { foreach (T @object in range) { queue.Enqueue(@object); } return(queue); }