2015-12-03 2 views
0

Я теряю HttpContext в методе, вызванном с использованием задачи. Похоже, Google считает, что этот код должен работать. Любая идея, что я могу делать неправильно здесь?Получение HttpContext в задаче

void ThisMethodIsCalledFromASPNet() 
    { 
     var context = System.Web.HttpContext.Current; // Here I am getting valid context 

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

    void DoSomething() 
    { 
     var context = System.Web.HttpContext.Current; // Here I am getting null 
    } 
+0

Что делать, если вы изменили 'DoSomething', чтобы принять' HttpContext' в качестве параметра? – mason

+0

уверен, но я надеюсь на некоторые лучшие способы. – BKS

+0

Я не думаю, что будет лучший способ. – Amy

ответ

1

Вам необходимо пройти в HttpContext:

void ThisMethodIsCalledFromASPNet() 
{ 
    Task.Factory.StartNew( 
     ctx => DoSomething((HttpContext)ctx), 
     System.Web.HttpContext.Current, 
     CancellationToken.None, 
     TaskCreationOptions.None, 
     TaskScheduler.FromCurrentSynchronizationContext()); 
} 

void DoSomething(HttpContext ctx) 
{ 
    // ctx is your HttpContext 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^