Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何通知.NET WinForms应用程序中的日期更改_Vb.net_Winforms - Fatal编程技术网

Vb.net 如何通知.NET WinForms应用程序中的日期更改

Vb.net 如何通知.NET WinForms应用程序中的日期更改,vb.net,winforms,Vb.net,Winforms,我想指定一个函数,当系统日期更改时,该函数将在午夜在我的VB.NET2005WinForms项目中调用。这可能吗 我知道我可以通过设置一个计时器来做到这一点,将时间间隔设置为午夜减去当前时间,然后在第一次滴答声之后,将时间间隔设置为24小时。我想知道是否有更干净、更简单的方法 编辑以发表评论:我想知道这一天何时改变,例如从12月27日到12月28日。我知道系统日期/时间在不断变化。听起来您可以使用常规的 通过这种方式,您可以编写一个常规的命令行应用程序,在调用时在后台以静默方式工作。如果在正确的

我想指定一个函数,当系统日期更改时,该函数将在午夜在我的VB.NET2005WinForms项目中调用。这可能吗

我知道我可以通过设置一个计时器来做到这一点,将时间间隔设置为午夜减去当前时间,然后在第一次滴答声之后,将时间间隔设置为24小时。我想知道是否有更干净、更简单的方法


编辑以发表评论:我想知道这一天何时改变,例如从12月27日到12月28日。我知道系统日期/时间在不断变化。

听起来您可以使用常规的

通过这种方式,您可以编写一个常规的命令行应用程序,在调用时在后台以静默方式工作。如果在正确的时间之前调用,它也可以退出

编辑: 在这种情况下,为什么不使用计时器并完成它呢? 即使您让操作系统告诉您日期,它仍然是一个软件实现(并且没有.NET定时器效率高多少),那么为什么不自己实现呢


关于清洁度,它可以看起来非常干净-如果你愿意,可以为它创建一个事件。

你可以实例化一个
系统.Threading.Timer
,周期为24小时,初始时间等于从明天午夜减去
DateTime.Now
得到的
TimeSpan
DateTime.Today.AddDays(1)
)。

我不喜欢计时器/datediff的想法,原因有两个。最明显的是,一天中并不总是24小时,你还需要定期重启应用程序以重新同步时钟。(类似于爱国者导弹错误)

我会保持它的简单性,只需每隔一秒或一分钟或任何你可以使用的最长时间间隔按一下计时器,以达到你的应用程序所需的准确度


如果您需要超精确的数据,并且不能每毫秒触发一个事件,我会在最后一分钟前每分钟点击一次,然后使用datediff触发另一个计时器。

系统日期不会在午夜更改。它会不断更改。谢谢;我编辑了问题以澄清问题。计时器工作正常、便宜且可靠。无poi不知道为什么你认为你需要一个更好的捕鼠器。注意夏令时。我需要一个已经运行的应用程序在午夜得到通知,这是这个应用程序的其他功能所必需的。除非你知道一个w是的,一个应用程序在另一个应用程序中引发事件。这与我在评论中提到的解决方案几乎相同,但如果没有更好的解决方案出现,我会接受答案。哈哈:)我很快就读到了。无论如何,您不必在第一次勾选后设置24小时间隔,但可以从构造函数中进行设置。我认为这是最简单的方法(1行代码,2行代码更可读)谢谢,每分钟按一次计时器,然后在最后一分钟加速似乎是最好的解决方案。接受。