Я делаю простой планировщик с C# в .Net. Все, что он делает, это выполняет простой оператор выбора для таблицы в базе данных SQL Server один раз в минуту (это не требует масштабирования или чего-то еще ... база данных не имеет высокой нагрузки). Вот моя предлагаемая реализация:
static void Main(string[] args)
{
while (true)
{
System.Threading.Thread.Sleep(timeout); // timeout is, say, 60000
CheckTable();
}
}
Это нормально? Какой способ лучше?
p.s. Кто-то предложил использовать класс Windows Forms Timer ... однако это кажется излишним.
Ваше здоровье!





Хотя это технически законно, вам, вероятно, лучше использовать таймер. Это не намного больше кода, который нужно настраивать, и вы можете позволить среде выполнения позаботиться о создании новых потоков. Если вам когда-нибудь понадобится снова использовать это в другой программе, это также создаст узкое место в производительности, где не будет таймер.
Таймер добавит больше кода, поскольку вам нужно использовать событие триггера таймера.
Это действительно зависит от того, хотите ли вы, чтобы несколько потоков одновременно выполняли одну и ту же процедуру.
Закрывать.
Quartz.net - хорошее решение для временных задач. Его довольно легко настроить (хорошее руководство на сайте), и он дает вам гораздо больше гибкости, чем таймеры. CronTrigger действительно мощный и простой в настройке.
Этот вопрос связан с: stackoverflow.com/questions/169332