public bool Unfreeze() { _frozenLock.EnterUpgradeableReadLock(); try { if (!_frozen) { return(false); } _frozenLock.EnterWriteLock(); try { _frozen = false; FrozenTime += OriginalClock.Time - _frozenAt; } finally { _frozenLock.ExitWriteLock(); } } finally { _frozenLock.ExitUpgradeableReadLock(); } Unfrozen?.Invoke(this, EventArgs.Empty); return(true); }
protected void OnUnfrozen(CauseOfFreezing cause) { FreezeEventArgs args = new FreezeEventArgs(cause); Unfrozen?.Invoke(this, args); pauseDisplay.Visibility = Visibility.Hidden; pauseSymbol.BeginAnimation(Canvas.OpacityProperty, null); }