更好的定时管理?

时间:2014-08-26 04:39:51

标签: vb.net timer

我正在使用VB.net 2012中的IRC机器人。我知道我知道,但它不是僵尸网络,哈哈 我想问你如何管理很多计时器的建议。现在我有一个计时器,以用户指定的间隔奖励积分,一个计时器以用户指定的间隔自动保存这些点。我还有一个显示广告的广告,并按指定的时间间隔广播一系列回复。

我觉得它失控了,并且想知道我是否有办法用一个或至少更少的计时器完成所有这些事情。

请记住,我在学习的过程中并不总是理解所有术语,但如果您有耐心解释,我是一个快速学习者。 :)

谢谢。

1 个答案:

答案 0 :(得分:2)

是的,当然你可以用一个计时器来完成它们。事实上,这就是你应该做什么 - 定时器是一种有限的资源,而且单个应用程序几乎没有理由使用多个应用程序。

您所做的是创建一个计时器,该计时器以您所有逻辑所需的最频繁间隔进行计时。然后,在该计时器的Tick事件处理程序内部,设置/检查指示已经过了多长时间的标志。根据过期的时间间隔,执行相应的操作并更新标志的状态。通过“标志”,我的意思是模块级变量,用于跟踪您想要跟踪的各种间隔 - 您现在使用不同的定时器跟踪的间隔。

与使用时钟跟踪时间的方式大致相同。对于您想要计时的每个任务,不要使用单独的时钟,而是使用每秒钟滴答的单个时钟。你从这个滴答中操作位移-60这些刻度是1分钟,其中3600个是1小时,等等。

但是,我强烈建议找出一种方法来尽可能多地响应事件,而不是按计时器跟踪的定期间隔。例如,您可以响应特定的用户操作奖励积分。这种类型的轮询是非常耗费资源的,很少是最好的解决方案。