ディスパッチタイマーを使用してキー押下イベント間の経過時間をミリ秒単位で測定しようとしていますが、ディスパッチタイマーの間隔を1ミリ秒と宣言してからティックイベントを確立すると、1ミリ秒ごとに起動するのではなく、10のようになります。 100ミリ秒(推測)。このティックイベントが時間どおりに発生しない場合、ミリ秒単位で時間を正確に測定するにはどうすればよいですか?System.Timersにアクセスできないように見えるSilverlightでこれを行っています。System.Threading.Timerでも同じことが起こるようです。
コードの基本は次のとおりです。
public void StartTimer(object o, RoutedEventArgs sender)
{
System.Windows.Threading.DispatcherTimer myDispatcherTimer = new
System.Windows.Threading.DispatcherTimer();
myDispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1); // 1 Milliseconds
myDispatcherTimer.Tick += new EventHandler(Each_Tick);
myDispatcherTimer.Start();
}
// A variable to count with.
int i = 0;
public void Each_Tick(object o, EventArgs sender)
{
i++;
}
public void keypress(object s, EventArgs args)
{
label1.contents = i.ToString();
i = 0;
}
何か案は?