private void OnTaskJobChanged(object sender, TreeJobChangedEventArgs args) { if (args.Event != TreeJobChangedEvent.RunningCompleted) { return; } lock (this._schedulingLock) { lock (this._runningTasksLock) { foreach (TreeTask treeTask in this.RunningTasks.Values) { if (treeTask.SubmitNextJob()) { break; } } } } }