2010/01/22(Fri) 21:22:47 編集(投稿者)
■No45882 (イチ さん) に返信
> timerでは若干ズレが生じるのでしょうか?
Timer.Tick の使い方を変えてみてはいかがでしょうか。
前の時間に Interval を足していくのではなく
開始時刻からの経過時間を観測するのに用いると良いのではないでしょうか。
private System.Diagnostics.Stopwatch stopwatch;
private long previous;
private void button1_Click(object sender, EventArgs e)
{
timer1.Interval = 20;
previous = 0;
stopwatch = System.Diagnostics.Stopwatch.StartNew();
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
long current = stopwatch.ElapsedMilliseconds / 200;
if (previous == current)
{
return;
}
previous = current;
if (previous % 5 == 0)
{
textBox1.AppendText("チーン\n");
}
else
{
textBox1.AppendText("コチ\n");
}
}