/// <summary> /// Задаёт значение для ключа /// </summary> /// <param name="key">Ключ</param> protected void Remove(KEY key) { using (ReaderWriterLockService.GetWriter(this._lock, true)) { this._collection.Remove(key); } }
/// <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)); } }
private static ReaderWriterLockService Get(ReaderWriterLockSlim rwlock, LockType lockType, bool checkHeldLock, bool noEscalate) { ReaderWriterLockService service = new ReaderWriterLockService(rwlock, lockType, checkHeldLock, noEscalate); service.Start(); return(service); }
/// <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; } }
/// <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)); } }
/// <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)); } }