Problem Ninject Scope z zadaniami / wątkami

Mam projekt MVC3, który używa Ninject, Entity Framework i wzorca Unit of Work z warstwą Service.

Moja klasa AsyncService ma funkcję, która uruchamia zadanie w tle, które na przykład dodaje użytkowników do repozytorium użytkowników. Mój obecny problem polega na tym, że zadanie działa poprawnie tylko przez kilka sekund, zanim pojawi się błąd, że DbContext został usunięty. Mój kontekst bazy danych, do którego wstrzyknięto InjectorScope Ninjecta (), wydaje się być usuwany, ponieważ InRequestScope () wiąże go z HttpContext.

Przeczytałem o InThreadScope (), jednak nie jestem pewien, jak prawidłowo go wdrożyć w moim projekcie MVC.

Moje pytanie brzmi: Jaki jest właściwy sposób użycia Ninject w moim zadaniu?

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