private void ProcessModification(NotifyCollectionChangedEventArgs e) { readWriteLock.ExchangeWriteForRead(); try { OnPropertyChanged(nameof(Count)); OnPropertyChanged("Item[]"); OnCollectionChanged(e); } finally { readWriteLock.ExitRead(); } }