C#Timer一次经过一个实例

时间:2017-04-05 03:17:17

标签: c# timer windows-services

我正在创建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函数完成每项任务时才会发生这种情况。

怎么做?

2 个答案:

答案 0 :(得分:3)

您应该停止计时器并等待上传和下载文件以使用Timer.Stop();Timer.Start()完成:

void timer1_tick(...){
    timer1.Stop();
    //Do your download, upload, etc.
    timer1.Start();
}

希望它有所帮助!

答案 1 :(得分:-1)

根据您的要求使用异步编程。它可能会对你有所帮助。谢谢

DOMXpath::evaluate()