所以我想去做一個定時器,做這樣的:每次我點擊出現這種情況的按鈕:如何在C#中使秒錶顯示秒和毫秒?
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);
}
的GUI線程每秒更新'label1' 1000次?是的,不。使用更大的間隔。留出一些時間讓線程完成繪畫。 –
Windows上的默認計時器分辨率爲15.6毫秒。 –
這只是一個表達錯誤,沒有人對中介價值感興趣。你有一個保證,你的用戶界面每秒更新至少64次,這足以欺騙人的眼睛。只需更新標籤,即可丟失列表框。如果你想讓它精確到原子鐘,那麼使用實際的wallclock時間,因此調用你的Tick事件處理器的操作系統的任何延遲都不起作用。使用Environment.TickCount。 –