Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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
C# 在C语言中获取系统时钟变化滴答声#_C#_Events_Delegates_Clock - Fatal编程技术网

C# 在C语言中获取系统时钟变化滴答声#

C# 在C语言中获取系统时钟变化滴答声#,c#,events,delegates,clock,C#,Events,Delegates,Clock,当秒、分钟、小时,。。。更改系统时钟,而不使用计时器,该计时器每毫秒检查一次属性是否已更改,并以最大1毫秒的延迟执行事件 因此,我希望避免轮询并在特定时间触发事件。您可以订阅。如果您的问题是:“我如何每整秒/分钟/小时执行一次委托?” 对于每分钟和每小时的间隔,您可以执行我在这个问题中的回答中所示的操作: 这应该相当准确,但不会精确到毫秒 对于秒间隔,我会使用一个简单的1秒间隔计时器。从用户的角度来看,如果操作在xx:xx:xx.000或xx:xx:xx.350执行,我认为没有太大区别。我

当秒、分钟、小时,。。。更改系统时钟,而不使用计时器,该计时器每毫秒检查一次属性是否已更改,并以最大1毫秒的延迟执行事件


因此,我希望避免轮询并在特定时间触发事件。

您可以订阅。如果您的问题是:“我如何每整秒/分钟/小时执行一次委托?”

对于每分钟和每小时的间隔,您可以执行我在这个问题中的回答中所示的操作:

这应该相当准确,但不会精确到毫秒


对于秒间隔,我会使用一个简单的1秒间隔计时器。从用户的角度来看,如果操作在xx:xx:xx.000或xx:xx:xx.350执行,我认为没有太大区别。

我在表单应用程序中通过将间隔设置为(1000-DateTime.Now.毫秒)解决了这个问题

在事件处理程序中,重置间隔以防止漂移

        <handle event>
        _timer1.Interval = (1000 - DateTime.Now.Millisecond);

_timer1.Interval=(1000-DateTime.Now.毫秒);

您的问题对于您想要的解决方案有点不清楚。这正是我需要的,这是一个明确的问题,我现在需要一个明确的答案!是的,宝贝!使用计时器是一种过激行为。根据文档,只有当用户更改系统时间时才会触发。这可能不是CommuSoft想要的。如果他想知道用户何时篡改时间,作为一种软件保护功能,dtb一般来说是正确的,但有一个细节使用这种1s间隔的方法似乎有点尴尬——应用程序可能开始计数,比如说每分钟950ms。将系统时钟与应用程序的时钟同时显示,切换到下一秒会有明显的延迟。为了解决这个问题,我会使用更小的定时器间隔,例如100-250ms,这取决于具体的使用情况。
        <handle event>
        _timer1.Interval = (1000 - DateTime.Now.Millisecond);