Problema do escopo Ninject com tarefas / threads

Eu tenho um projeto MVC3 que usa Ninject, Entity Framework e o padrão Unit of Work com uma camada de serviço.

Minha classe AsyncService possui uma função que inicia uma tarefa em segundo plano que, por exemplo, adiciona usuários ao repositório do usuário. Meu problema atual é que a tarefa só é executada corretamente por alguns segundos antes de eu receber um erro que o DbContext foi descartado. Meu contexto de banco de dados, que é injetado com InRequestScope () do Ninject, parece estar sendo descartado, pois InRequestScope () o vincula ao HttpContext.

Eu li sobre InThreadScope (), no entanto não tenho certeza de como implementá-lo corretamente no meu projeto MVC.

Minha pergunta é: Qual é a maneira correta de usar o Ninject na minha tarefa?

public class AsyncService
{
    private CancellationTokenSource cancellationTokenSource;
    private IUnitOfWork _uow;
    public AsyncService(IUnitOfWork uow)
    {
        _uow = uow;
    }
    public void AsyncStartActivity(Activity activity)
    {
    ...snip...
        this.cancellationTokenSource = new CancellationTokenSource();
        var cancellationToken = this.cancellationTokenSource.Token;
        var task = Task.Factory.StartNew(() =>
            {
                foreach (var user in activity.UserList)
                {
                    this._uow.UserRepository.Add(new User() {UserID = user});
                }
                this._uow.Save();
            }, cancellationToken);
     ...snip...
    }
}

questionAnswers(2)

yourAnswerToTheQuestion