当前位置:  开发笔记 > 编程语言 > 正文

使用任务并行库任务时为什么httpcontext对象不可用?

如何解决《使用任务并行库任务时为什么httpcontext对象不可用?》经验,为你挑选了1个好方法。

我正在使用TPL在我的代码中创建新任务.一切都适用于提高性能.但每当有像context.currentuser.iDentifier这样的HTTPContext对象时.此代码抛出一个异常,说HTTP Context对象不可用.空引用异常.我想知道如何将上下文对象传递给任务对象?



1> Yogi..:

这是因为并行线程没有在相同的上下文中执行.您需要传递SynchronizationContext.在TPL中,您可以使用TaskScheduler.FromCurrentSynchronizationContext()传递上下文.

在我的一个项目中,我做到了这样的事情 -

 Task.Factory.StartNew(() => MyMethod(),
                          CancellationToken.None,
                          TaskCreationOptions.None, 
                          TaskScheduler.FromCurrentSynchronizationContext());

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有