<PackageReference Include="Nito.AsyncEx.Tasks" Version="2.0.0-alpha-01" />

Nito.AsyncEx.SingleDisposable<T>

public abstract class SingleDisposable<T> : SingleDisposable<T>
A base class for disposables that need exactly-once semantics in a threadsafe way.
namespace Nito.AsyncEx { public abstract class SingleDisposable<T> where T : class { protected SingleDisposable(T context); } }