我已成功使用此question中所述的解决方案。
我现在想要重用几种不同形式的Timer方法,并且一直在尝试创建一个类,以便将各种形式的方法数量保持在最低限度。但是我对编程和使用类和事件相当新,并且不认为我正在接近这个。
到目前为止我的课程是以下。在我的课程中可以和事件在主程序中触发和事件吗?我是否应该使用课程?
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()
删除计时器。
答案 0 :(得分:0)
在这种情况下,您可以拥有的最佳示例是您已经在Timer中使用的计时器的接口--System.Windows.Forms.Timer。提供一个事件来完全按照内部计时器的要求通知您的班级客户。