private void RunHandlerTask(IConnectionHandler handler, HandlerContext context) { var handlerTask = Task.Run(async () => { if (handler is IAsyncConnectionHandler) { await ((IAsyncConnectionHandler)handler).ProcessAsync(context); } else { await Task.Run(() => handler.Process(context)); } }).ContinueWith(t => { if (t.IsFaulted) { OnHandlerTaskError(handler, context); } }); activeHandlerTasks.Add(handlerTask); }