示例#1
0
        public override void Stop()
        {
            Dictionary <IEffect, ContainerAction> aCAs = new Dictionary <IEffect, ContainerAction>();

            if (bSourceNonStop)
            {
                _cEffectSource.iContainer = iContainer;
                aCAs.Add(_cEffectSource, ContainerAction.Add);
            }
            else
            {
                if (EffectStatus.Preparing == _cEffectSource.eStatus)
                {
                    _cEffectSource.Idle();
                }
                if (EffectStatus.Running == _cEffectSource.eStatus)
                {
                    _cEffectSource.Stop();
                }
            }
            if (bTargetNonStop)
            {
                _cEffectTarget.iContainer = iContainer;
                aCAs.Add(_cEffectTarget, ContainerAction.Add);
            }
            else
            {
                if (EffectStatus.Preparing == _cEffectTarget.eStatus)
                {
                    _cEffectTarget.Idle();
                }
                if (EffectStatus.Running == _cEffectTarget.eStatus)
                {
                    _cEffectTarget.Stop();
                }
            }
            aCAs.Add(this, ContainerAction.Remove);
            iContainer.EffectsProcess(aCAs);
            base.Stop();
        }