Нужна помощь по вопросу ниже, у меня есть метод ниже:
public IHttpActionResult Test()
{
Task.Run(() => DoTheStuff())
Return Ok()
}
Примечание: Здесь я не хочу использовать ключевое слово async/await
, так как мне плевать на результат метода DoTheStuff()
. Мне просто нужно открыть один поток и выполнить код.
DoTheStuff()
метод относится к объектам, которые вводятся посредством внедрения зависимостей (Autofac). и в Module.Config я зарегистрировал все необходимые зависимости с помощью lifetimecope.
Ниже приведена проблема с вызовом Task.Run(() => DoTheStuff())
запускается новый поток, выполняющий метод DoTheStuff()
.
В то же время метод Test()
завершает свое выполнение с возвратом Ok()
, но метод DoTheStuff
все еще работает асинхронно.
При выполнении метода Test()
зарегистрированные зависимости удаляются, а метод DoTheStuff()
выдает ниже исключения:
Вложенное время жизни невозможно создать из LifetimeScope, поскольку оно имеет
уже утилизирован
Может кто-нибудь сообщить мне, как сохранить экземпляр объекта зависимости в потоке?