public void CopyTo(T[] array, int arrayIndex) { _lock.EnterWriteLock(); try { hashset.CopyTo(array, arrayIndex); } finally { if (_lock.IsWriteLockHeld) { _lock.ExitWriteLock(); } } }
public void CopyTo(ArraySlice <T> array, int arrayIndex, int count) { _lock.EnterWriteLock(); _lock.EnterReadLock(); try { //CopyTo<T>(Hashset<T> src, ArraySlice<T> array, int arrayIndex, int count) Hashset <T> .CopyTo(hashset, array, arrayIndex, count); } finally { if (_lock.IsWriteLockHeld) { _lock.ExitWriteLock(); } if (_lock.IsReadLockHeld) { _lock.ExitReadLock(); } } }