namespace System.Threading; public readonly record struct CancellationTokenRegistration : IDisposable { public CancellationTokenSource? CancellationTokenSource { get; init; } public Action? Action { get; init; } public void Dispose() { if (CancellationTokenSource != null && Action != null) { CancellationTokenSource.Unregister(Action); } } }