所以我想创建一个执行此操作的计时器:每次单击按钮时都会发生这种情况:
0.052
0.521
1.621
2.151
...
但不是这样的话:
0.015
0.032
0.112
0.252
...
这种情况正在发生: picture
这段代码不正确,我等了很长时间,直到有一段时间......
int sec = 0, ms = 1;
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
listBox1.Items.Add(label1.Text);
timer1.Interval = 1;
}
private void timer1_Tick(object sender, EventArgs e)
{
ms++;
if (ms >= 1000)
{
sec++;
ms = 0;
}
label1.Text = String.Format("{0:0}.{1:000}", sec, ms);
}
答案 0 :(得分:4)
您应该使用.Net框架的System.Diagnostics名称空间中的Stopwatch对象。像这样:
System.Diagnostics.Stopwatch sw = new Stopwatch();
public void button1_Click()
{
sw.Start; // start the stopwatch
// do work
...
sw.Stop; // stop the stopwatch
// display stopwatch contents
label1.Text = string.Format({0}, sw.Elapsed);
}
如果您希望仅将总时间视为总秒数和毫秒数(无分钟或小时数),则可以将最后一行更改为:
label1.Text = string.Format({0}, sw.ElapsedMilliseconds / 1000.0)