public void Dispose() { var dispose = Interlocked.Exchange(ref _dispose, null); dispose?.Invoke(); } }