使用System.Threading和System.Timers编写计时器

时间:2013-07-10 05:25:51

标签: c# .net multithreading timer

我可以使用此代码段作为传统System.Timers的完全替代品,只要我的应用程序/服务正在运行,它就会运行吗?

System.Threading timer:

var timeToWait = TimeSpan.FromSeconds(20);
var interval = TimeSpan.FromMinutes(5);
var t = new Timer(s => OnTimedEvent(), null, timeToWait, interval);

System.Timers timer:

timer = new Timer(interval);
timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
timer.Start();

到目前为止,System.Threading版本对我有用,但上述代码是否存在长期影响?

1 个答案:

答案 0 :(得分:1)

  

线程安全问题略有不同。

您将在此处获得详细信息System.Timers.Timer vs System.Threading.Timer