Which Timer to use in this context
<p>I have a <code>do/while</code> like the following:</p>

<pre><code>do {

  //1.look for a report

  //2.either use interops to run an xl macro report or run a batch file report or run vbs file report

  //3.then sleep/pause program for 150seconds 

} while (look for next report to run)
</code></pre>

<p>This is all withing a <code>Console</code> application. </p>

<p>How do I create the 150 second pause/sleep ? Step 2 might involve running various processes and I'm slightly worried that simply using <code>Thread.Sleep</code> might be troublesome as it is not thread safe.</p>

<hr>

<p>Should I somehow work this sort of code into the structure i.e. put steps 1 and 2 in the <code>CallMeBack</code> method?</p>

<pre><code>static void Main(string[] args) {
    var t = new System.Timers.Timer(1000);
    t.Elapsed += (s, e) =&gt; CallMeBack();
    t.Start();

    Console.ReadLine();
}
public static void CallMeBack() {

    //1.look for a report
    //2.either use interops to run an xl macro report or run a batch file report or run vbs file report

    Console.WriteLine("Doing some consuming time work using sleep");
}
</code></pre>

<p>(the above is taken from <a href="http://stackoverflow.com/questions/2430930/c-sharp-how-to-pause-suspend-a-thread-then-continue-it">HERE</a>)</p>
