AnonymousDisposable
Represents an Action-based disposable.
using System.Threading;
namespace System.Reactive.Disposables
{
internal sealed class AnonymousDisposable : ICancelable, IDisposable
{
private volatile Action _dispose;
public bool IsDisposed => _dispose == null;
public AnonymousDisposable(Action dispose)
{
_dispose = dispose;
}
public void Dispose()
{
Interlocked.Exchange(ref _dispose, null)?.Invoke();
}
}
}