title: C# - Windows Service with awareness of System Time
body: <p>I am thinking about writing a windows service that will turn a certain functionality on or off at times specified by the user (using a configuration utility I will provide). Basically, the user would specify certain times that the PC would go into "work-only" mode (blocking Facebook and other distracting sites), and then when those times are up the PC will return to normal mode. </p>
  
  <p>I have already come up with a few ways to create the "work-only" mode, but what I am struggling with is how to know when to go into and out of that mode. I don't really want to work with threads and timers if I can avoid it since that seems like it would create an awful lot of overhead, so what I am looking for would be some way to either:</p>
  
  <ul>
  <li>Hook in to the Windows API if there is some kind of timeChanged() event to check against</li>
  <li>Use some sort of pre-built library for firing events at a specified time</li>
  <li>Some other method that I haven't thought of that is elegant and wonderful</li>
  </ul>
  
  <p>Does anyone know the best way to do this?</p>