Ejemplo n.º 1
0
        protected virtual void ForceValue(T value, ValueAssureDelegate <T> valueAssureDelegate = null)
        {
            var oldValue = ActualValue;

            lock (_locker)
            {
                ActualValue = value;
            }
            valueAssureDelegate?.Invoke(this, oldValue);
        }
Ejemplo n.º 2
0
 public virtual void SetValue(T value, ValueAssureDelegate <T> valueAssureDelegate = null)
 {
     lock (_locker)
     {
         if (!Equals(tempValue, value))
         {
             tempValue  = value;
             setCounter = 1;
         }
         else if (setCounter < assuranceCounter)
         {
             setCounter++;
         }
         if (setCounter == assuranceCounter)
         {
             if (!Equals(ActualValue, value))
             {
                 ForceValue(value, valueAssureDelegate);
             }
             setCounter++;
         }
     }
 }