How do I access HttpContext.Current in Task.Factory.StartNew?

后端 未结 3 1741
鱼传尺愫
鱼传尺愫 2020-12-08 15:23

I want to access HttpContext.Current in my asp.net application within

Task.Factory.Start(() =>{
    //HttpContext.Current is null here
});
3条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-08 16:08

    Task.Factory.Start will fire up a new Thread and because the HttpContext.Context is local to a thread it won't be automaticly copied to the new Thread, so you need to pass it by hand:

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

提交回复
热议问题