private void Dispose()
        {
            if (Disposed)
            {
                return;
            }

            Disposed = true;
            Completion.TrySetCanceled(Cancellation.Token);
            Cancellation.Dispose();
            CancellationRegistration.Dispose();
        }