Я понимаю, что в службе Windows лучше использовать Таймер
, а не Thread.Sleep(время ожидания)
. Однако во всех примерах кода, которые я смог найти в Интернете и которые обрабатывали рабочие процессы Azure, вместо Timer
используется Thread.Sleep(timeout)
.
Даже код по умолчанию, представленный в шаблоне проекта 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, которая приводит к этой разнице в том, как мы должны воспринимать такого рода приложения? Хорошо или плохо использовать Таймер
в рабочих процессах Azure?
Любое объяснение со ссылками на некоторые ресурсы, объясняющие основы этого, приветствуется, поскольку я пока ничего не нашел.