如何安排我的Windows服务每十分钟运行一次

时间:2014-09-15 10:04:12

标签: .net windows-services

我正在使用从某些设备下载数据的Windows服务。如何安排我的Windows服务每10分钟运行一次。我想每隔10分钟从这些设备下载数据。这是一个很好的方法使用计时器并将代码放在Elapsed方法中?或者还有其他方法来执行此任务吗?

2 个答案:

答案 0 :(得分:3)

不确定您在此过程中有多远,但假设您刚刚开始,请按照分步说明here创建可以使用InstallUtil.exe安装的基本Windows服务。如果您希望安装和卸载Windows服务可执行文件,请按照分步说明here进行操作。这应该可以帮到你。

现在,要让每10分钟运行一次,你需要一个计时器。这是一个可能的样子。

using System.Timers;
public partial class Service1 : ServiceBase
{
    private Timer _timer;

    protected override void OnStart(string[] args)
    {
        _timer = new Timer(10 * 60 * 1000);  // 10 minutes expressed as milliseconds
        _timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
        _timer.AutoReset = true;
        _timer.Start();
    }

    protected override void OnStop()
    {
        _timer.Stop();
        _timer.Dispose();
    }

    private void OnTimerElapsed(object sender, ElapsedEventArgs e)
    {
        // Do your work here...
    }

HTH

答案 1 :(得分:2)

您可能希望在输入OnTimerElapsed方法时暂停/停止计时器,并在退出方法之前恢复它,如果您的处理可能会运行超过10分钟。