【问题标题】:Get current date everyday for a Windows service每天获取 Windows 服务的当前日期
【发布时间】:2010-07-26 04:39:22
【问题描述】:

我想每天只在特定时间运行我的 Windows 服务,所以我做了以下操作,但是如何在每一天替换这个日期?

Dim checkTime As DateTime
checkTime = checkTime.Parse("7/23/2010 3:41 PM")

【问题讨论】:

  • 听起来您想要计划任务而不是服务?
  • 只是一个观察,如果他们回答你的问题,你接受答案会很好。 8 个问题,0 接受是相当低的。
  • 这是 C# 还是 VB.NET?您已标记问题 C# 但代码是 VB.NET!

标签: c#


【解决方案1】:

如果您只是希望它具有今天的日期并准确检查下午 3:41,您可以这样做:

DateTime checkTime = DateTime.Now.Date.AddHours(15).AddMinutes(41);

您有 C# 标记,但您的代码是在 VB 中,因此 VB 等效项是:

Dim checkTime As DateTime = DateTime.Now.[Date].AddHours(15).AddMinutes(41)

【讨论】:

  • 我个人更喜欢 DateTime.Today 而不是 DateTime.Now.Date
【解决方案2】:

您的程序是否需要一直运行,还是只需要在特定时间执行一个函数,完成后退出?

如果是后者,您可以简单地使用 Windows 的Task Scheduler 来安排您的 EXE 定期运行。

如果是前者,仍然没有必要重新发明轮子。看看Quartz.NET。它是一个非常强大的作业调度库,可让您安排作业定期运行。基本上,您创建一个继承自IJob 的类,Quartz 将在指定的时间调用它的Execute() 方法。

警告:Quartz 是多线程的,您的 IJob 类的 Execute() 将在与您的主线程分开的线程上调用,因此您面临线程化的危险。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2012-02-09
    相关资源
    最近更新 更多