public void UnregisterChangeCallback(ScopeTokenRegistration registration) { lock (_registrations) if (_registrations.Remove(registration) && _registrations.Count == 0) { _owner.RemoveScopeToken(_key); } }
public IDisposable RegisterChangeCallback(Action <object> callback, object state) { lock (_registrations) if (!_hasChanged) { var registration = new ScopeTokenRegistration(this, callback, state); _registrations.Add(registration); return(registration); } else { return(Disposable.Empty); } }