gpt4 book ai didi

.net - 在一个定时器中处理多个定时器

转载 作者:行者123 更新时间:2023-12-02 04:43:53 25 4
gpt4 key购买 nike

我的表格上有大约 20 个计时器,每个计时器都有不同的间隔。比如有的是25的间隔,有的是100的间隔,还有的也有43这样的“不规则”间隔。

我希望只有一个计时器并处理其 Tick 事件中的所有内容。

例如像这样:

Private Sub _TmrAll_Tick(sender As Object, e As EventArgs) Handles _TmrAll.Tick

_iTimer += 25

If _iTimer Mod 25 = 0 Then
pHandleClickDelayRepeat()
End If

If _iTimer Mod 100 = 0 Then
pHandleSkype()
End If

If _iTimer Mod 43 = 0 Then 'this of course would not work with my current approach
pHandleMouse()
End If

它认为我目前的方法不是很好,因为我不能轻易处理这些不规则的间隔。

有没有人知道如何去做?

谢谢。

最佳答案

您只需要一个计时器并将间隔设置为所有间隔的最大除数(无余数)。

在你的情况下,43 只能除以 43 或 1。你不能使用 43,因为它不是 25 的除数,所以你唯一的选择是 1。这意味着它会在什么都不做的时候触发很多次但这并不重要。

因此只需跟踪区间变量(您可以使用静态变量来使范围尽可能小)。像这样:

Private Sub _TmrAll_Tick(sender As Object, e As EventArgs) Handles _TmrAll.Tick
Static intervalCount As Integer = 0

intervalCount += 1

If intervalCount Mod 25 = 0 Then
pHandleClickDelayRepeat()
End If

If intervalCount Mod 100 = 0 Then
pHandleSkype()
End If

If intervalCount Mod 43 = 0 Then
pHandleMouse()
End If
End Sub

关于.net - 在一个定时器中处理多个定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com