我已成功使用此问题中所述的解决方案。
我现在想以几种不同的形式重用计时器方法,并一直在尝试创建一个类,以便将各种形式的方法数量保持在最低限度。但是,我对编程和使用类和事件相当陌生,并且不太认为我正确地处理了这个问题。
下面是我到目前为止的课程。我的班级中的和事件可以在主程序中触发和事件吗?我什至应该使用课程吗?
using System;
using System.Timers;
namespace TMP_ERP
{
class Timer
{
int MilliSeconds;
System.Windows.Forms.Timer queryTimer;
public Timer()
{
}
//Revokes the timer if not already revoked
public void RevokeQueryTimer()
{
if (queryTimer != null)
{
queryTimer.Stop();
queryTimer.Tick -= queryTimer_Tick;
queryTimer = null;
}
}
public void RestartQueryTimer()
{
//start or reset a pending query
if (queryTimer == null)
{
queryTimer = new System.Windows.Forms.Timer { Enabled = true, Interval = 1500 };
queryTimer.Tick += queryTimer_Tick;
}
else
{
queryTimer.Stop();
queryTimer.Start();
}
}
void queryTimer_Tick(object sender, EventArgs e)
{
//Tells Main Program to do something?
}
}
}
每次有人键入一个字符时,我都会调用RestartQueryTimer()
。如果QueryTimer
滴答声比我查询数据库,然后调用RevokeQueryTimer()
删除计时器。