Ich versuche die verstrichene Zeit in Millisekunden zwischen Tastendruckereignissen mit einem Sendetimer zu messen, aber einen Sendetimer mit einem Intervall von 1 Millisekunde zu deklarieren und dann das Tickereignis zu setzen feuert nicht alle 1 Millisekunde, sondern etwa 10-100 Millisekunden (raten). Wie kann ich die Zeit in Millisekunden genau messen, wenn dieses Tick-Ereignis nicht rechtzeitig ausgelöst wird? Ich mache das in silverlight, das keinen Zugriff auf System.Timers zu haben scheint. Dasselbe scheint mit System.Threading.Timer zu geschehen.Abrufen der verstrichenen Zeit mit DispatchTimer auf 1 Millisekunden Genauigkeit
Hier ist die Grundlagen des Kodex:
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;
}
Irgendwelche Ideen?
Sieht aus wie 3ms ist das Beste, auf das ich hoffen kann, bis ich eine Alternative finden oder diese Stoppuhr-Baugruppe finden kann. –