public virtual Effect.MasterSweeper.Job RunEffect(Effect.IMasterBrightnessEffect effect, TimeSpan oneSweepDuration) { var effectAction = effect.GetEffectAction(brightness => { this.SetBrightness(brightness, this); }); lock (this.lockObject) { if (this.effectJob == null) { // Create new this.effectJob = Executor.Current.RegisterSweeperJob(effectAction, oneSweepDuration, effect.Iterations); } else { this.effectJob.Reset(effectAction, oneSweepDuration, effect.Iterations); } this.effectJob.Restart(); } return this.effectJob; }