【问题标题】:why httpcontext object is not available while using task parallel library task?为什么在使用任务并行库任务时 httpcontext 对象不可用?
【发布时间】:2017-01-13 11:20:44
【问题描述】:

我正在使用 TPL 在我的代码中创建新任务。一切都很好,性能得到了提高。但只要有像 context.currentuser.iDentifier 这样的 HTTPContext 对象。此代码引发异常,说明 HTTP 上下文对象不可用。空引用异常。 我想知道如何将上下文对象传递给任务对象?

【问题讨论】:

标签: .net task-parallel-library


【解决方案1】:

这是因为并行线程不在同一个上下文中执行。你需要通过SynchronizationContext它。 在 TPL 中,您可以使用 TaskScheduler.FromCurrentSynchronizationContext() 来传递上下文。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多