Usage: var slim = new ReaderWriterLockSlim(); using (slim.Read()) { // perform read } using (slim.Write()) { // perform write }