Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1220 of 1492 menu
◀ ▶

ReaderWriterLockSlim

По умолчанию рекурсия запрещена: запись при уже держащемся чтении бросает LockRecursionException.

Синтаксис

var rw = new ReaderWriterLockSlim();

Пример

Давайте войдем в режим чтения:

using System; using System.Threading; class Program { static void Main() { var rw = new ReaderWriterLockSlim(); rw.EnterReadLock(); Console.WriteLine(rw.IsReadLockHeld); rw.ExitReadLock(); } }

Результат выполнения кода:

True

Пример

Давайте войдем в режим записи:

using System; using System.Threading; class Program { static void Main() { var rw = new ReaderWriterLockSlim(); rw.EnterWriteLock(); Console.WriteLine(rw.IsWriteLockHeld); rw.ExitWriteLock(); } }

Результат выполнения кода:

True

Пример

Давайте запросим запись при уже держащемся чтении:

using System; using System.Threading; class Program { static void Main() { var rw = new ReaderWriterLockSlim(); rw.EnterReadLock(); try { rw.EnterWriteLock(); Console.WriteLine("ok"); } catch (LockRecursionException) { Console.WriteLine("fail"); } rw.ExitReadLock(); } }

Результат выполнения кода:

"fail"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить