我正在使用一个System.Timers.Timer
我的代码中有如下代码OnStart
C# Windows 服务中的方法。
timer = new Timer();
timer.Elapsed += timer_Elapsed;
timer.Enabled = true;
timer.Interval = 3600000;
timer.Start();
这会导致代码中timer_Elapsed
从我启动服务后一小时开始每小时执行一次。有什么方法可以让它在我启动服务时执行,然后每小时执行一次?
调用的方法timer_Elapsed
运行时间太长,无法直接调用OnStart
.
只需启动一个线程池线程来调用工作函数,就像 Timer 一样。像这样:
timer.Elapsed += timer_Elapsed;
ThreadPool.QueueUserWorkItem((_) => DoWork());
...
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
DoWork();
}
void DoWork() {
// etc...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)