我正在编写一些会生成统计信息的程序。为了记录统计数据,我目前使用一个计时器(设置为1000毫秒)。
但它不准确。我已经看到一段时间后它低于实际时间。我认为这必须对CPU和其他东西做些什么。
所以我的问题是:每秒调用一个函数的好方法是什么?
顺便说一句,这就是我的代码的一部分:
int totalSeconds = 0; // this number was taken from a savefile
int sessionSeconds = 0; // this number is for the session time
bool doUpdateGUI = true; // this is true when the form is shown
private void TimerMAIN_Tick()
{
totalSeconds++; // increase by 1
sessionSeconds++; // increase by 1
if (doUpdateGUI == true)
{
updateGUI(); // call the updateGUI void (which updates labels and textboxes)
}
}
编辑:我自己得到了答案!我这样创建了它:
private void timerTClockEngine_Tick(object sender, EventArgs e) //this timer is set to 100ms
{
dt = DateTime.Now;
if (dt.Second != oldSec)
{
TClock_TICK();
oldSec = dt.Second;
}
}
private void TClock_TICK()
{
Ttime++;
textBoxT.Text = Ttime.ToString();
}