public override void Dispose() { if (_dispose == null) { throw new InvalidOperationException("Disposable has not been initialized"); } base.Dispose(); lock (Nothing) { Instance = this; } }
public static IDisposable Build(Action dispose) { ReusableGenericDisposable instance = null; lock (Nothing) { instance = Instance; Instance = null; } if (instance == null) { instance = new ReusableGenericDisposable(); } instance.Initialize(dispose); return(instance); }