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(); }