Beispiel #1
0
            protected override void OnDispose()
            {
                //!!!!что было бы если диспоснуть недозагруженный. другой поток юзает то бишь

                IDisposable disposable = ResultObject as IDisposable;

                if (disposable != null)
                {
                    disposable.Dispose();
                }

                if (instanceType == InstanceType.Resource && Owner != null)
                {
                    Owner.Dispose();
                }

                //!!!!тут?
                DisposedEvent?.Invoke(this);
                AllInstances_DisposedEvent?.Invoke(this);
            }
        protected virtual void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }
            lock (Identifier)
            {
                if (disposing)
                {
                    DisposedEvent?.Invoke(this, null);

                    foreach (var childContext in ChildContexts)
                    {
                        childContext.Dispose();
                    }
                }
                disposed = true;
            }
        }
Beispiel #3
0
 private static void On(DisposedEvent e)
 {
     Exit();
 }