Hi Tom,

Depending what you're after - we use both task scheduler and windows service via NSSM.

If you want something to sit the background and periodically do something then definitely windows service.
For example, we have a report scheduler that runs as a service to generate/print/email reports that users have scheduled. And because its a service, users are alerted if the service is not running.

But if you want to a task executed at a specific time/scheduler then task scheduler as you can specify the user that it needs to run under.
For example, we have a end-of-day process that runs at 10pm every night.