public void AddFirst(T item) { lock (SyncRoot) { buffer.AddFirst(item); CollectionChanged?.Invoke(NotifyCollectionChangedEventArgs <T> .Add(item, 0)); } }
public void AddFirst(T item) { lock (SyncRoot) { if (capacity == buffer.Count) { var remItem = buffer.RemoveLast(); CollectionChanged?.Invoke(NotifyCollectionChangedEventArgs <T> .Remove(remItem, capacity - 1)); } buffer.AddFirst(item); CollectionChanged?.Invoke(NotifyCollectionChangedEventArgs <T> .Add(item, 0)); } }