I am creating a Windows Service for automated deployment of our software to several different environments. 

When the service is started it instantiates a custom Deployer object. The Deployer object first reads in a config file containing a list of environments and the times at which they should be deployed, for example QA-0900,1400 for deploying to QA at 9am and 2pm. Then it starts a Timer with a timeout of 45 seconds and thereafter checks each timeout if the current time matches a time in the list. If it finds a match, it starts the deployment to that environment.

This seems dumb and inefficient to be polling every 45 seconds, but I can think of no better way to do it.

Have any ideas?