Оскільки ви додали до запитання примітку про практичні приклади, я наведу кілька прикладів служб, які я написав для корпоративних додатків (ви не кажете, чи є програмістом для корпоративних програм, але я гадаю, що більшість програмістів C # VS2010 є) . Я думаю, ви шукаєте уявлення про те, що можуть писати розробники, які не працюють для Microsoft.
Сервіс монітору серцебиття, який перевіряв, чи ще запущені інші програми (це, можливо, також працювало як заплановане завдання, але було реалізовано як послуга).
Служба написання звітів, яка працювала через черги запитів звітів, запускала звіти та надсилала їх до різних принтерів залежно від того, який принтер зайнятий. Це допомогло вивантажити неабияку кількість роботи зі застарілого додатка та дозволило ділитися звітом за допомогою декількох дешевих скриньок, що виконують послугу.
Він був реалізований як послуга, щоб він запускався постійно, запускався автоматично при перезавантаженні та мав змогу використовувати стандартний інтерфейс служб Windows для запуску, зупинки, паузи тощо. Також, якщо це було заплановане завдання, потрібно було б ініціювати отримання даних з інших програм або постійного джерела (черга, файл, база даних), а не доступна для дзвінків іншої програми (socket, pipe).
Серверна частина цього клієнтсько-серверного додатку також була реалізована як послуга, щоб вона перезапустилася при перезавантаженні тощо. Був ще один проект із .exe, який запускав ту саму програму не як сервіс, щоб полегшити налагодження на розроблювальних машинах.
Я сподіваюся, що це допомагає. Інші відповіді - це кращі загальні відповіді, особливо ідея про те, що заплановані завдання, мабуть, простіше написати та виконувати зараз для більшості цілей.