public object this[int index] { get { AcquireReaderLock(); try { return _list[index]; } finally { ReleaseReaderLock(); } } set { AcquireWriterLock(); try { _list[index] = value; } finally { ReleaseWriterLock(); } } }