【发布时间】:2021-12-12 02:52:40
【问题描述】:
我一直在为自己制作一个小项目,试图测量两次点击之间的时间。稍后我会将其更改为按键,但我可以自己完成。我需要以毫秒为单位测量时间,而我知道的唯一方法是使用计时器......
bool clicked = true;
int time = 0;
private void button1_Click(object sender, EventArgs e)
{
if (clicked)
{
timer1.Start();
clicked = false;
}
else
{
timer1.Stop();
clicked = true;
}
}
private void timer1_Tick(object sender, EventArgs e)
{
time += 10;
label1.Text = Convert.ToString(time);
}
计时器设置为 10 个滴答的间隔,为了直观地看到我还让计时器显示时间。但是当我测试它时,我添加了另一个间隔为 1000 滴答的计时器,由此我看到了差异。后来我意识到计时器不准确。我开始挖掘,唯一被推荐的是秒表,我尝试了这个......
private void button1_Click(object sender, EventArgs e)
{
var timer = new Stopwatch();
if (clicked)
{
timer.Start();
clicked = false;
}
else
{
timer.Stop();
TimeSpan timeTaken = timer.Elapsed;
label1.Text = timeTaken.ToString();
clicked = true;
}
}
但是每次都会返回“00:00:00”的结果。我该怎么办?
【问题讨论】:
-
var timer = new Stopwatch();这是方法本地声明的。尝试将其移至表单级别。 -
试试
Stopwatch();函数。
标签: c# timer stopwatch milliseconds