我正在创建Windows服务。我想每隔30秒运行一次服务。
所以我使用以下代码在Windows服务启动时使用了计时器。
protected override void OnStart(string[] args)
{
timer1 = new Timer();
timer1.Interval = 30000;
timer1.Elapsed += new ElapsedEventHandler(timer1_tick);
timer1.Start();
}
在timer1_tick函数中,我正在执行一些操作,例如更新用户详细信息,上传和下载文件。
但在这里我不确定上述行动是否会在30秒内完成。 所以我想一次运行一个。
这里 timer1_tick函数每隔30秒调用一次。只有当 timer1_tick函数完成每项任务时才会发生这种情况。
怎么做?
答案 0 :(得分:3)
您应该停止计时器并等待上传和下载文件以使用Timer.Stop();
和Timer.Start()
完成:
void timer1_tick(...){
timer1.Stop();
//Do your download, upload, etc.
timer1.Start();
}
希望它有所帮助!
答案 1 :(得分:-1)
根据您的要求使用异步编程。它可能会对你有所帮助。谢谢
DOMXpath::evaluate()