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

标签 c# timer windows-services

我有一个 Windows 服务,我需要在一天中的特定时间运行。假设时间 ID 是晚上 11:00。目前我有每天运行此服务的代码,但我不知道如何向其中添加时间变量能够得到那个。 这是我在 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();
    }

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

最佳答案

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

您可以简单地获取您的应用程序服务代码并将其粘贴到 Windows 控制台应用程序中,然后使用 Windows Task Scheduler 安排生成的 exe 以您认为合适的任何时间表运行。 .

希望这对您有所帮助。

关于c# - 如何在每天的特定时间运行 Windows 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033280/

相关文章:

C#:将简单结构列表转换为 byte[]

c# - HttpClient 调用带整数参数的 web api 方法返回错误 404

java - 我可以使用 Timer 类将日期传递给 ScheduleAtFixedRate 方法吗?

c# - 更改数据集时,SqlDependency 不会触发 OnChange 事件

c# - 区分同名的 Windows 服务?

c# - 如何将字典对象绑定(bind)到 Windows 窗体 gridview

c# - 实现 Swish 支付 C# - 仅在 Azure 上 - 发送客户端证书 - 请求被中止 : Could not create SSL/TLS secure channel

java - 在 Java 中最推荐使用计时器的方法是什么

c - 如何在 Linux 内核设备驱动程序中使用定时器?

c# - 检查我的程序是否在 64 位机器上以 32 位模式运行,如果以 64 位运行 - 我如何强制它为 32 位