我正在使用TPL在代码中创建新任务。所有这些都能很好地工作,并且性能有所提高。但是只要有HTTPContext对象,例如context.currentuser.iDentifier。此代码引发异常,表明HTTP上下文对象不可用。空引用异常。我想知道如何将上下文对象传递给任务对象吗?
这是因为并行线程不在同一上下文中执行。您需要将其传递给SynchronizationContext。在TPL中,您可以TaskScheduler.FromCurrentSynchronizationContext()
用来传递上下文。
在我的一个项目中,我做了这样的事情-
Task.Factory.StartNew(() => MyMethod(),
CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句