System.Threading.ClientSimpleRwLock.EnterWriteLock C# (CSharp) Метод

EnterWriteLock() публичный Метод

public EnterWriteLock ( ) : void
Результат void
        public void EnterWriteLock()
        {
            ClientSpinWait sw = new ClientSpinWait();
              do {
            int state = rwlock;
            if (state < RwWrite) {
              if (ClientInterlocked.CompareExchange(ref rwlock, RwWrite, state) == state)
            return;
              state = rwlock;
            }
            // We register our interest in taking the Write lock (if upgradeable it's already done)
            while ((state & RwWait) == 0 && ClientInterlocked.CompareExchange(ref rwlock, state | RwWait, state) != state)
              state = rwlock;
            // Before falling to sleep
            while (rwlock > RwWait)
              sw.SpinOnce();
              } while (true);
        }