如何在每天的特定时间运行 Windows 服务

Pra*_*nav 1 c# windows-services timer

我有一个 Windows 服务,我需要在一天中的特定时间运行。假设时间 id 11:00 PM。目前我有代码每天运行此服务,但如何添加时间变量到此我无法得到那。这是我的 c# 代码..

protected override void OnStart(string[] args)
    {
        timer = new Timer();
        timer.Interval = 1000 * 60 * 60 * 24;//set interval of one day 
        timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
        start_timer();

    }

    static void timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        // Add your code here
        readDataFromAd();

    }
    private static void start_timer()
    {
        timer.Start();
    }
Run Code Online (Sandbox Code Playgroud)

请帮我定义时间和间隔。时间应该是晚上 11:00,计时器应该每天执行方法。

Dou*_*oug 5

我建议改变你的方法。服务通常用于始终运行的长时间运行的进程。对于按计划运行的进程,Windows 有一个名为“任务计划程序”的内置组件,该组件专为按计划运行应用程序而设计。

您只需将应用程序服务代码粘贴到 Windows 控制台应用程序中,然后使用 Windows任务计划程序安排生成的 exe 按照您认为合适的任何计划运行。

希望这可以帮助。