C# Windows窗体中计时器的采样频率不为';t将实际记录的测量值相加

C# Windows窗体中计时器的采样频率不为';t将实际记录的测量值相加,c#,winforms,timer,C#,Winforms,Timer,这是我在SO上的第一篇帖子。通常只是潜伏,这对我很有帮助。但我解决不了这个问题,需要你的帮助! 我用Windows窗体制作了一个测试程序。它包含两个按钮(启动和停止按钮)。单击开始按钮时,每毫秒(毫秒)调用一个日志函数,它提取一些基本信息(或者我认为是这样)。测试在2分钟后停止,单击停止功能。测试运行2分钟后,只有7789次测量。测试没有结果-任何想法,为什么会这样?我附上了开始和停止按钮的代码截图 Windows窗体计时器的精度为55毫秒,如果需要更高的精度,则需要使用System.timer

这是我在SO上的第一篇帖子。通常只是潜伏,这对我很有帮助。但我解决不了这个问题,需要你的帮助! 我用Windows窗体制作了一个测试程序。它包含两个按钮(启动和停止按钮)。单击开始按钮时,每毫秒(毫秒)调用一个日志函数,它提取一些基本信息(或者我认为是这样)。测试在2分钟后停止,单击停止功能。测试运行2分钟后,只有7789次测量。测试没有结果-任何想法,为什么会这样?我附上了开始和停止按钮的代码截图


Windows窗体计时器的精度为55毫秒,如果需要更高的精度,则需要使用System.timers.Timer


没有该分辨率(请参见备注部分)。还有,谢谢你的回答!在将GUI保持为WinForm的情况下,是否可以使用System.Timers.Timer?@tigram10查看属性。请注意,如果您在经过的事件之间进行的处理时间超过了间隔时间,则这些事件将重叠,并且您可能存在竞态条件(和/或重入)问题。
//Start-button

private void button1_CLick(object sender, EventArgs e)
{
     TestInitiated = true;
     LogTimer = new System.Windows.Forms.Timer();
     LogTimer.Tick += new EventHandler(stopwatch_tick);
     LogTimer.Enabled = true;
     LogTimer.Interval = 1;
     LogTimer.Start();
}

//STop-Button
private void button2_Click)object sender, EventArgs e)
{
     TestInitiated = false;
     LogTimer.Stop();
     LogTimer.Enabled = false;
}