// Constructor /// <summary></summary> /// <param name="getEnumeratorDelegate"></param> /// <param name="readerWriterLock"></param> public ThreadSafeEnumerator(Func<IEnumerator<T>> getEnumeratorDelegate, ThreadSafeReaderWriterLock readerWriterLock) { #region Require if (getEnumeratorDelegate == null) throw new ArgumentNullException(); if (readerWriterLock == null) throw new ArgumentNullException(); #endregion // ReaderWriterLock _readerWriterLock = readerWriterLock; _readerWriterLock.EnterReadLock(); // Component _component = getEnumeratorDelegate(); }
// Methods /// <summary></summary> protected void EnterReadLock() { _readerWriterLock.EnterReadLock(); }