Possible Duplicate:
Compare using Thread.Sleep and Timer for delayed execution
I am considering whether to use a System.Threading.Timer or Thread.Sleep in my ASP.NET Web Application. I looked for the differences of them. Period or the Sleep will be 100ms. AFAIK if I use a Timer it will not block running thread, but Sleep will block running thread.
Since the interval is very small, would it be better to choose Thread.Sleep(150) ?
Edit: I tend to use it like a timer on not thread pool thread. I know Timers will be run on thread pool, but I don't want to keep thread pool thread for such an operation
I would recommend reading:
Comparing the Timer Classes in the .NET Framework Class Library
None of the timers will block the running thread, however the frequency at which they tick as a result of activity on the application's main thread differs as described in the above article.
Which you use really depends on the end result you desire! Although Thread.Sleep is viewed by most people as an anti-pattern.
Thread.Sleep() has some uses for which it is vital. These are few and far between, and if you're using any number higher than about 1 as the argument you almost certainly don't have one.
If it's even possible for a timer to be used instead, then you definitely don't have one. Don't block a perfectly good thread when the alternative isn't even difficult.
Do be careful of the case where a timer is triggered while the previous trigger is still running. Depending on the nature of the operation you will want to either:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With