title: Synchronizing a timer to prevent overlap
body: <p>I'm writing a Windows service that runs a variable length activity at intervals (a database scan and update). I need this task to run frequently, but the code to handle isn't safe to run multiple times concurrently.</p>
  
  <p>How can I most simply set up a timer to run the task every 30 seconds while never overlapping executions? (I'm assuming <code>System.Threading.Timer</code> is the correct timer for this job, but could be mistaken).</p>