Фоновый процесс (периодический «сервис») в приложении WinForm - PullRequest
0 голосов
/ 18 января 2010

Каков наилучший способ настройки фонового процесса, который запускается каждые 10 минут в проекте WinForm? Это использовать фоновый работник вне формы? Или есть более общий способ, который применим ко многим другим стилям проекта?

Может быть, какой-то код, который мне следует вызвать прямо перед строкой:

 Application.Run(new Form1());

Ответы [ 2 ]

2 голосов
/ 18 января 2010

Как правило, если вы хотите, чтобы приложение Windows Forms запускало некоторый код через регулярные промежутки времени, использование Windows.Forms.Timer в одной из ваших форм является подходящим способом обработки уведомлений.

Однако, как вы, похоже, поняли, для этого потребуется, чтобы вы запустили и запустили форму и привязали ее к инфраструктуре Windows Forms.

Другим альтернативным подходом будет использование System.Threading.Timer класс, который уведомляет вас о фоновом потоке.Однако, если вы используете этот подход, вам нужно будет использовать некоторую форму синхронизации, если вы хотите, чтобы ваш «процесс» взаимодействовал с пользовательским интерфейсом.Лучший нейтральный платформенный подход (работает с Windows Forms + WPF) заключается в использовании SyncrhonizationContext для перенаправления обратно в поток пользовательского интерфейса, если требуется.

1 голос
/ 18 января 2010

Вы можете использовать планировщик задач для планирования приложения.

Если вы хотите иметь таймер в своем приложении, вы можете использовать таймер или использовать библиотеку, такую ​​как Quartz.NET

...