【发布时间】:2019-02-19 09:30:14
【问题描述】:
在以下问题上需要帮助,我有以下方法:
public IHttpActionResult Test()
{
Task.Run(() => DoTheStuff())
Return Ok()
}
注意:这里我不想使用async/await 关键字,因为我不关心DoTheStuff() 方法的结果。我只需要打开一个线程并执行代码。
DoTheStuff() 方法是指通过依赖注入(Autofac)注入的对象。在 Module.Config 中,我已经注册了所有必需的依赖项和生命周期。
下面的问题我面临调用Task.Run(() => DoTheStuff()) 启动新线程执行DoTheStuff() 方法。
同时Test()方法完成执行,返回Ok(),但DoTheStuff方法仍在异步运行。
随着Test()方法的执行,注册的依赖被释放,DoTheStuff()方法抛出以下异常:
无法从 LifetimeScope 创建嵌套生命周期,因为它具有 已经处理了
谁能告诉我如何在线程中维护依赖对象实例?
【问题讨论】:
-
请提供包含依赖项注册的代码。请说,如果
Test方法属于控制器?
标签: asynchronous dependencies task autofac