Task IService.InitializeAsync() { _client.Log += message => _queue.Enqueue(() => HandleClientLog(message)); _client.MessageReceived += message => _queue.Enqueue(() => HandleMessageReceivedAsync(message)); _restClient.Log += message => _queue.Enqueue(() => HandleClientLog(message)); _commands.CommandExecuted += (command, result, context, provider) => _queue.Enqueue(() => HandleCommandExecutedAsync(command, result, context, provider)); return(_logging.LogInfoAsync("Initialized.", "Dispatcher")); }
private Task EnqueueHandlers <TArgs>(TArgs args) where TArgs : EventArgs { foreach (var handler in _handlers[typeof(TArgs)]) { _queue.Enqueue(() => ((IHandler <TArgs>)handler).HandleAsync(args)); } return(Task.CompletedTask); }