Exemplo n.º 1
0
        public override void Dispose()
        {
            if (_dispose == null)
            {
                throw new InvalidOperationException("Disposable has not been initialized");
            }

            base.Dispose();

            lock (Nothing)
            {
                Instance = this;
            }
        }
Exemplo n.º 2
0
        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);
        }