internal void Invalidate()
        {
            T invalidatedInvoker = Interlocked.Exchange(ref _dynamicInvoker, null);

            if (invalidatedInvoker != null)  // call listeners no more than once.
            {
                _invalidationListeners.InvokeAndClearAll(this);
            }
        }
Example #2
0
        private void Invalidate()
        {
            int wasValid = Interlocked.Exchange(ref _isValid, 0);

            if (wasValid == 1)
            {
                _diagnosticSourceInvoker.Handle.Invalidate();
                _diagnosticListenerInvoker.Handle.Invalidate();
                _invalidationListeners.InvokeAndClearAll(this);
            }
        }