private void OnExecutionStart(ICommand command) { command.OnExecutionStart -= OnExecutionStart; int len = command.Contexts.Count; for (int i = 0; i < len; i++) { IContext context = null; if (contexts.TryGetValue(command.Contexts[i], out context)) { context.AddCommand(command); } } pendingCommands.Remove(command); activeCommands.Add(command); }