给出以下代码:
string injectedString = "Read string out of HttpContext";
Task.Factory.StartNew(() =>
{
MyClass myClass = new MyClass();
myClass.Method(injectedString);
}
这是将字符串传递到任务/线程的最佳方法吗?
我对这种方法的担忧是:
- 垃圾收集器会知道字符串何时耗尽吗?
上下文并正确清理它?
- 是否有更好的方法将依赖项注入到任务中,从而破坏主线程中对象的链接?
这是在 Asp.Net Web 服务中,如果它很重要并且是一个即发即忘类型的线程,我不会等待任何类型的响应。
我的字符串实际上将从中读取HttpContext
,这就是我以这种方式注入它的原因之一(线程无权访问调用线程HtppContext
)
你可能应该使用Task.Factory.StartNew(Action<object> action, object state)
重载以将状态传递到新任务中。
Task.Factory.StartNew((object myState) => {
var i = (int)myState;
//Do calculations...
var x = i + 10;
}, 10);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)