Пример #1
0
 public void Test_GetReadLock()
 {
     using (_lock.GetReadLock())
     {
         Assert.IsTrue(_lock.IsReadLockHeld);
     }
     Assert.IsFalse(_lock.IsReadLockHeld);
 }
Пример #2
0
 public T this[int index]
 {
     get
     {
         using (_rwLock.GetReadLock())
         {
             return(_list[index]);
         }
     }
     set
     {
         using (_rwLock.GetWriteLock())
         {
             _list[index] = value;
         }
     }
 }
Пример #3
0
 /// <summary>
 /// Gets an input.
 /// </summary>
 /// <param name="address">The address.</param>
 /// <returns></returns>
 public DiscreteInput GetInput(ushort address)
 {
     using (discreteInputsLock.GetReadLock())
     {
         return(new DiscreteInput {
             Address = address, BoolValue = discreteInputs.Contains(address)
         });
     }
 }
Пример #4
0
 /// <summary>
 /// Gets a coil at an address.
 /// </summary>
 /// <param name="address">The address of the coil.</param>
 /// <returns></returns>
 public Coil GetCoil(ushort address)
 {
     using (coilsLock.GetReadLock())
     {
         return(new Coil {
             Address = address, BoolValue = coils.Contains(address)
         });
     }
 }
Пример #5
0
 /// <summary>
 /// Gets an holding register.
 /// </summary>
 /// <param name="address">The address.</param>
 /// <returns></returns>
 public Register GetHoldingRegister(ushort address)
 {
     using (holdingRegistersLock.GetReadLock())
     {
         if (holdingRegisters.TryGetValue(address, out ushort value))
         {
             return new Register {
                        Address = address, RegisterValue = value, Type = ModbusObjectType.HoldingRegister
             }
         }
         ;
     }
     return(new Register {
         Address = address, Type = ModbusObjectType.HoldingRegister
     });
 }
Пример #6
0
 public static IDisposable GetReadLock(this ReaderWriterLockSlim rwLock)
 {
     return(rwLock.GetReadLock(-1));
 }
Пример #7
0
 private static Privilege PrivilegeFromLuid(Luid luid)
 {
     using (_LuidLock.GetReadLock()) {
         return(_Luid.First(kv => kv.Value.LowPart == luid.LowPart && kv.Value.HighPart == luid.HighPart).Key);
     }
 }
 public void GetReadLock_TryRead_Fail()
 {
     using (_locker.GetReadLock())
         _locker.TryEnterReadLock(0);
 }