title: is timer efficient?
body: <p>I have created an application that is used to read a mail box at certain intervals. If there is a new mail it downloads the attachment creates pdf files say 100 + combines it and mail it back to a particular list. Due to some server policies am in a position to convert it to a window service. I have used a timer my code given below</p>
  
  <pre><code>private System.Threading.Timer timer;
  timer = new System.Threading.Timer(TimerTick, null, TimeSpan.Zero, TimeSpan.FromMinutes(1));
  
  void TimerTick(object state)
  {
    var minute = DateTime.Now.Minute;
    if (minute != lastMinute &amp;&amp; minute % 5 == 0)
    {
      //check mail here
    }
  }
  </code></pre>
  
  <p>Is implementing a timer like this an efficient way of doing this? Is there any better way to handle this? I am worried about the performance because the applications need to run 24 x7 and hence can end up in utilizing more cpu memory if inefficient.</p>
  
  <p><em><strong>is timer the only best available option in this scenario ?</em></strong></p>