0

所以我正在为其他人编写调度程序类型程序的代码。他创建了一个计时器,每 10 秒运行一次,以检查时间表列表,看看是否需要运行任何时间表。我修改为更新 Schedule.button.forecolor 取决于是否有时间表或当前是否正在运行(分别为黄色和绿色)。计时器的代码在日程表文件中

问题是在项目启动时调用计时器,这确保用户不必实际单击调度程序表单来实际启动计时器。但是当这个定时器在启动时被调用,因为定时器在表单代码上,所以制作了这个表单的一个实例来让定时器启动。当然,稍后当页面被访问时,它是一个不同的实例,所以按钮不会更新。

我该如何解决这个问题?我应该重构旧代码以将计时器实例分隔在不同的文件中,然后调用它吗?或者有没有更好的方法在启动时启动计时器?

4

1 回答 1

2

为了单一职责,我建议将计时器代码与所有 UI 分开。您可以在适当的时间(在计时器类中)引发自定义 CheckForUpdates 事件,该事件会在每个需要按钮更新的掩码/实例中被捕获。

这也使您的代码更具可扩展性。

编辑:您的项目中是否也隐含了一个数据库?在我看来,计时器每十秒检查一次,是否有任何任务要运行。如果这个检查是服务器端的,效率会更高。每次必须运行任务时,服务器都会向客户端发送一条消息。

于 2013-01-21T17:46:14.717 回答