В своем проекте использую подход CQRS.
Есть набор интерфейсов:
public interface ICommand { }
public interface ICommandHandler<TCommand> where TCommand: ICommand {
void Handle(TCommand command);
}
public interface ICommandProcessor
{
void Process<TCommand>(TCommand command) where TCommand : ICommand;
Task ProcessAsync<TCommand>(TCommand command) where TCommand : ICommand;
}
Вопрос: как лучше быть с асинхронной обработкой команд? В одном из репозиториев видел подход с использованием Task.Factory.StartNew (
репозиторий). Но гугл сказал, что использование этого подхода не является хорошим решением.