timerコンポーネントの精度を測定してみた。 1ms単位で設定できるけど、相当ばらつくみたい。
一つ目の数値は、初期値が入ってないので無視するとして、38ms設定で最小値が33ms、最大値が60ms。 1ms単位の設定はあまり意味がないみたい。
とりあえず、ソース。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using System; using System.Windows.Forms; namespace TimerTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn_stsp_Click(object sender, EventArgs e) { timer1.Enabled = !timer1.Enabled; } DateTime old_dt; double old_us = 0; private void timer1_Tick(object sender, EventArgs e) { DateTime dt = DateTime.Now; TimeSpan deff = dt - old_dt; double us = deff.Milliseconds; old_dt = dt; textBox1.Text = textBox1.Text + us.ToString() + " "; } } } |