private void ProcessCommand(InCommand command) { try { foreach (var interceptor in _inputInterceptors) { interceptor(command); } var consumer = _inputConsumers.First(); consumer.TryConsume(command, new InputCommandConsumerScope(() => _inputConsumers.Remove(consumer))); } catch (Exception ex) { Console.WriteLine(ex); } }
public void QueueInCommand(InCommand command) { _inputQueue.Add(command); }
public void TryConsume(InCommand command, IDisposable scope) { _action(command, scope); }