Я хочу часто проверять сервер на наличие новых данных. Использование C # TImers - PullRequest
0 голосов
/ 20 февраля 2011

Я хочу часто проверять сервер на наличие новых данных. означает, что я хочу запускать команду выбора каждые 20 минут, чтобы проверить таблицу базы данных. Я использую Windows Form 2008.

Ответы [ 3 ]

1 голос
/ 20 февраля 2011

Если приложение больше ничего не делает, я рекомендую составить расписание . Планирование приложения освобождает вас от целого ряда проблем, начиная от отсутствия необходимости реализовывать поведение службы и избегать нестабильности из-за того, что со временем не освобождаются неуправляемые ресурсы. Приложения, работающие в течение длительного времени, могут столкнуться с проблемами, сбоями, зависаниями и т. Д. В планировщике заданий есть возможность убивать долго работающие приложения и тому подобное, поэтому он является хорошим другом для таких задач.

Если приложение изменяет свой графический интерфейс, используйте System.Forms.Timer (перетащите элемент управления GUI таймера в форму).

Если приложение работает в фоновом режиме, используйте System.Threading.Timer или выделенный System.Threading.Thread с циклом ожидания, содержащим System.Threading.Thread .Sleep .

Если ваше приложение запускается из ASP.Net, то, по слухам, оно Кварц . Лично я бы порекомендовал вам не запускать расписания из ASP.Net, а вместо этого внимательно взглянуть на свою архитектуру.

0 голосов
/ 20 февраля 2011

Quartz.NET - очень хорошая библиотека.Я использую это в своих службах Windows.Я предлагаю вам использовать cron триггер .

http://quartznet.sourceforge.net/

0 голосов
/ 20 февраля 2011

Вы можете использовать таймер соответствующая документация по MSDN :

var timer = new Timer(TimeSpan.FromMinutes(20).TotalMilliseconds);
timer.Elapsed += (sender, e) =>
{
    // TODO: send a query to the database
};
timer.Start();

В Windows Forms вы также можете использовать класс System.Windows.Forms.Timer .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...