Правильно реализовать фоновый процесс Thread в ASP.NET

Мне нужно выполнить бесконечный цикл while и хочу инициировать выполнение вglobal.asax. My question is how exactly should I do it? Should I start a new Thread or should I use Async and Task or anything else? Inside the while loop I need to do await TaskEx.Delay(5000);

Как мне сделать это, чтобы он не блокировал другие процессы и не создавал утечек памяти?

I use VS10,AsyncCTP3,MVC4

EDIT:

 public void SignalRConnectionRecovery()
        {
            while (true)
            {
                Clients.SetConnectionTimeStamp(DateTime.UtcNow.ToString());
                await TaskEx.Delay(5000);
            }
        }

Все, что мне нужно сделать, это запустить его как единичный экземпляр во всем мире, пока приложение доступно.

EDIT:SOLVED

Это окончательное решение в Global.asax

protected void Application_Start()
{
    Thread signalRConnectionRecovery = new Thread(SignalRConnectionRecovery);
    signalRConnectionRecovery.IsBackground = true;
    signalRConnectionRecovery.Start();

    Application["SignalRConnectionRecovery"] = signalRConnectionRecovery;
}


protected void Application_End()
{
    try
    {
        Thread signalRConnectionRecovery = (Thread)Application["SignalRConnectionRecovery"];
        if (signalRConnectionRecovery != null && signalRConnectionRecovery.IsAlive)
        {
            signalRConnectionRecovery.Abort();
        }
    }
    catch
    {
            ///
    }
}

Я нашел эту хорошую статью о том, как использовать асинхронный работник:http://www.dotnetfunda.com/articles/article613-background-processes-in-asp-net-web-applications.aspx

И это: http://code.msdn.microsoft.com/CSASPNETBackgroundWorker-dda8d7b6

Но я думаю, что для моих нужд это будет идеально: http://forums.asp.net/t/1433665.aspx/1

Ответы на вопрос(5)

Ваш ответ на вопрос