Объясните, пожалуйста, поведение следующего блока кода:
var rwl = new ReaderWriterLockSlim();
rwl.EnterWriteLock();
try
{
await using var stream = new FileStream("1.txt", FileMode.Create);
await using var writer = new StreamWriter(stream);
await writer.WriteLineAsync("test");
// здесь происходит выход из блокировки. Как так то?
}
finally
{
// SynchronizationLockException: The write lock is being released without being held
rwl.ExitWriteLock();
}
1. Почему снятие блокировки происходит в блоке
try?
2. Почему такое поведение только при использовании
await using?
Буду искренне благодарен за ссылку на документацию где можно почитать про это явление=)