コード例 #1
0
        public virtual void Deactivate()
        {
            if (children != null)
            {
                for (var i = 0; i < childrenCount; i++)
                {
                    children[i].RemoveSubscriber(this);
                    children[i] = null;
                }

                childrenCount = 0;
                ArrayPool <AtomBase> .Return(ref children);
            }

            if (subscribers != null)
            {
                for (var i = 0; i < subscribersCount; i++)
                {
                    subscribers[i].Obsolete();
                }
            }

            if (options.TryReset(AtomOptions.Active))
            {
                AtomRegistry.OnInactivate(this);
            }

            state = AtomState.Obsolete;
        }