Если приложение больше ничего не делает, я рекомендую составить расписание . Планирование приложения освобождает вас от целого ряда проблем, начиная от отсутствия необходимости реализовывать поведение службы и избегать нестабильности из-за того, что со временем не освобождаются неуправляемые ресурсы. Приложения, работающие в течение длительного времени, могут столкнуться с проблемами, сбоями, зависаниями и т. Д. В планировщике заданий есть возможность убивать долго работающие приложения и тому подобное, поэтому он является хорошим другом для таких задач.
Если приложение изменяет свой графический интерфейс, используйте System.Forms.Timer (перетащите элемент управления GUI таймера в форму).
Если приложение работает в фоновом режиме, используйте System.Threading.Timer или выделенный System.Threading.Thread с циклом ожидания, содержащим System.Threading.Thread .Sleep .
Если ваше приложение запускается из ASP.Net, то, по слухам, оно Кварц . Лично я бы порекомендовал вам не запускать расписания из ASP.Net, а вместо этого внимательно взглянуть на свою архитектуру.