Catel.Data.ModelBase.SuspendChangeCallbacks C# (CSharp) Метод

SuspendChangeCallbacks() публичный Метод

Suspends the change callbacks whenever a property has been called. This is very useful when there are expensive property change callbacks registered with a property that need to be temporarily disabled.
public SuspendChangeCallbacks ( ) : IDisposable
Результат IDisposable
        public IDisposable SuspendChangeCallbacks()
        {
            var token = new DisposableToken<ModelBase>(this, x =>
            {
                lock (_propertyValuesLock)
                {
                    if (_changeCallbacksSuspensionContext == null)
                    {
                        _changeCallbacksSuspensionContext = new SuspensionContext();
                    }

                    _changeCallbacksSuspensionContext.Increment();
                }
            },
            x =>
            {
                lock (_propertyValuesLock)
                {
                    var suspensionContext = _changeCallbacksSuspensionContext;
                    if (suspensionContext != null)
                    {
                        suspensionContext.Decrement();

                        if (suspensionContext.Counter == 0)
                        {
                            _changeCallbacksSuspensionContext = null;
                        }
                    }
                }

                // Note: don't invoke the "missed" callbacks
            });

            return token;
        }