Использование Thread.Sleep или Timer в рабочей роли Azure в .NET?

Я понимаю, что в службе Windows, лучше использоватьTimer скорее, чемThread.Sleep(timeout), Тем не менее, во всех примерах кода, которые я мог найти в Интернете для работы с рабочими Azure, этоThread.Sleep(timeout) который используется вместоTimer.

Даже код по умолчанию, предоставленный в шаблоне проекта Worker в Visual Studio, используетThread.Sleep:

public class WorkerRole : RoleEntryPoint
{
    public override void Run()
    {
        // This is a sample worker implementation. Replace with your logic.
        Trace.WriteLine("$projectname$ entry point called", "Information");

        while (true)
        {
            Thread.Sleep(10000);
            Trace.WriteLine("Working", "Information");
        }
    }
// ...
}

До сих пор я также использовалThread.Sleep в моих работниках, но не понимая почему. Итак, мой вопрос, зачем использоватьThread.Sleep(timeout) в рабочей роли Azure, а неTimer? В чем разница между службой Windows и рабочим Azure, которая приводит к этой разнице в том, как мы должны создавать такие приложения? Хорошо это или плохо использоватьTimer в Azure рабочие?

Любое объяснение со ссылками на некоторые ресурсы, объясняющие основы этого, приветствуется, так как я до сих пор ничего не смог найти.

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

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