【发布时间】:2015-06-12 11:01:25
【问题描述】:
在我看来,计时器从其_Tick() 方法显示时间时并不是很准确。我想以分钟/秒为单位显示经过的时间,显示完成过程所需的时间长度。我已经将它与 Timer 一起使用,但发现它的计算不正确。这就是为什么我想问一下秒表会更好地显示更准确,还是我应该完全使用它们的单独控件?
private int timepassed = 0;
private void buttonFourteen_Click(object sender, DragEventArgs e)
{
timer2.Start();
var backgroundWorker = new BackgroundWorker();
backgroundWorker.DoWork += (s, e) =>
{
//Lengthy Procedure Goes Here
};
backgroundWorker.RunWorkerCompleted += (s, e) =>
{
timer2.Stop();
};
backgroundWorker.RunWorkerAsync();
}
private void timer2_Tick(object sender, EventArgs e)
{
timepassed++;
timedisplay.Text = timepassed.ToString();
}
【问题讨论】:
-
show the length of time a procedure takes to complete你想要一个秒表。 Timer 更适合按设定的时间间隔执行操作。 -
使用合适的工具来做你想做的事。
Stopwatch用于测量经过的时间。Timer用于调度。至少您没有使用DateTime进行测量,因为这也不适用于精确的间隔测量。 -
我会使用计时器并保存开始时间,以通过
Now - Start计算时差。测试性能时需要秒表来确保准确性,而不是显示最多 2 个小数点精度的计时器。
标签: c# winforms timer stopwatch