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