У меня есть необходимость начать новый поток для долго работающей задачи (запись в хранилище документов, запуск повторного индекса и т. Д.).с помощью Ninject в новой теме
Я использую Ninject на веб-сайте ASP.Net MVC. По сути, я хочу создать новый поток из моего запроса Http, который инициализирует его собственные объекты, следя за тем, чтобы никакие соединения с базами данных и т. Д. Не использовались из запроса Http в новом потоке. Я не уверен, что использовать для создания потока или как настроить Ninject для повторного использования сеанса моей базы данных из контекста веб-запроса.
Ниже приводится основная диаграмма последовательности задачи
Я читал немного о названных областей в Ninject, но я не уверен, что если каким-либо образом, что это связано.
Код для моего CommandProcessor, который будет порождать новый поток является:
public class CommandProcessor
{
private IKernel _serviceLocator;
public CommandProc(IKernel serviceLocator)
{
_serviceLocator = serviceLocator;
}
public void Process<TCommand>(TCommand command) where T : ICommand
{
var commandHandlers = _serviceLocator.Get<ICommandHandler<TCommand>>();
foreach (var commandHandler in commandHandlers)
{
// I want this call to be asynchronous
commandHandler.Handle(command);
}
}
}
Спасибо заранее,
Хэмиш.
Хм, это сделает контекст DB перейти из области запроса Web в переходных процессах обыкновению это? – Anders