Мне нужно написать инструмент, который будет запускать повторяющиеся задачи по расписанию, настраиваемому пользователем. Я напишу его в C # 3.5, и он будет работать на XP, Windows 7 или Windows Server 2008. Задачи занимают около 20 минут. Пользователи, вероятно, захотят настроить несколько конфигураций: например, ежедневные, еженедельные и ежемесячные циклы. Использование планировщика заданий не вариант.
Пользователь будет планировать повторения через интерфейс, похожий на диалог повторяющихся встреч Outlook. Как только они настроят расписание, они запустят его, и он должен будет сидеть в системном трее и запускать свои задачи в назначенное время, а затем отправлять почту, чтобы показать, что оно закончилось.
Каков наилучший способ написать это, чтобы он не поглощал ресурсы, не блокировал хост или не вел себя неправильно?