c# - 如何访问 Task.Factory.StartNew 中的 HttpContext.Current?

标签 c# asp.net .net c#-4.0 asp.net-4.0

我想在我的 asp.net 应用程序中访问 HttpContext.Current

Task.Factory.Start(() =>{
    //HttpContext.Current is null here
});

我该如何修复这个错误?

最佳答案

Task.Factory.Start 将启动一个新的 Thread 并且因为 HttpContext.Context 是线程的本地它不会会被自动复制到新的Thread,所以需要手动传递:

var task = Task.Factory.StartNew(
    state =>
        {
            var context = (HttpContext) state;
            //use context
        },
    HttpContext.Current);

关于c# - 如何访问 Task.Factory.StartNew 中的 HttpContext.Current?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10662456/

相关文章:

c# - 使用 ASP.NET、C# 和 Winnovative.WnvHtmlConvert.PdfConverter 重新创建新的 PDF 仍保留旧图像

javascript - 为什么点击按钮时 Div 不可见

c# - 为什么我的正则表达式在 C# 中不起作用,但在其他文本编辑器中起作用?

c# - 获取 ComboBox 中的选定项

asp.net - ASP.Net 使用什么 URL 重写器?

c# - 从 .NET 3.5 中的单独线程设置 Form.Owner

.net - 尝试调用两个功能时Windows窗体卡住

c# - ProcessExit 与 DomainUnload

c# - 如何从 WPF 中的 Gridview.Items 中读取特定列?

c# - 像java一样的Visual Studio参数化单元测试