コード例 #1
0
 /// <summary>
 /// Задаёт значение для ключа
 /// </summary>
 /// <param name="key">Ключ</param>
 protected void Remove(KEY key)
 {
     using (ReaderWriterLockService.GetWriter(this._lock, true))
     {
         this._collection.Remove(key);
     }
 }
コード例 #2
0
 /// <summary>
 /// Возвращает значение для ключа
 /// </summary>
 /// <param name="key">Ключ</param>
 /// <param name="value">Значение</param>
 /// <returns>Значение</returns>
 protected bool TryGetValue(KEY key, out VALUE value)
 {
     using (ReaderWriterLockService.GetReader(this._lock, true))
     {
         return(this._collection.TryGetValue(key, out value));
     }
 }
コード例 #3
0
        private static ReaderWriterLockService Get(ReaderWriterLockSlim rwlock, LockType lockType,
                                                   bool checkHeldLock, bool noEscalate)
        {
            ReaderWriterLockService service = new ReaderWriterLockService(rwlock, lockType, checkHeldLock, noEscalate);

            service.Start();
            return(service);
        }
コード例 #4
0
 /// <summary>
 /// Задаёт значение для ключа
 /// </summary>
 /// <param name="key">Ключ</param>
 /// <param name="value">Значение</param>
 protected void SetValue(KEY key, VALUE value)
 {
     using (ReaderWriterLockService.GetWriter(this._lock, true))
     {
         if (this._denyValueReplacement && this._collection.ContainsKey(key))
         {
             throw new InvalidOperationException(string.Format(ControllerResources.HolderCannotReplaceValueFormat, key, this.GetType()));
         }
         this._collection[key] = value;
     }
 }
コード例 #5
0
 /// <summary>
 /// Возвращает значение для ключа
 /// </summary>
 /// <param name="key">Ключ</param>
 /// <returns>Значение</returns>
 protected VALUE GetValue(KEY key)
 {
     using (ReaderWriterLockService.GetReader(this._lock, true))
     {
         VALUE value;
         if (this._collection.TryGetValue(key, out value))
         {
             return(value);
         }
         return(default(VALUE));
     }
 }
コード例 #6
0
 /// <summary>
 /// Возвращает ключ по значению
 /// </summary>
 /// <param name="value">Значение</param>
 /// <returns>Ключ</returns>
 protected KEY GetKey(VALUE value)
 {
     using (ReaderWriterLockService.GetReader(this._lock, true))
     {
         foreach (KeyValuePair <KEY, VALUE> pair in this._collection)
         {
             if (pair.Value.Equals(value))
             {
                 return(pair.Key);
             }
         }
         return(default(KEY));
     }
 }