Уменьшение прошедшего времени с помощью DispatchTimer до 1 миллисекунды точность

Я пытаюсь измерять прошедшее время в миллисекундах между событиями нажатия клавиш с помощью таймера отправки, но при объявлении таймера отправки на интервал в 1 миллисекунду и последующем установлении события тика он не t срабатывает каждую 1 миллисекунду, но где-то около 10-100 миллисекунд (угадайте). Как мне точно измерить время в миллисекундах, если это событие тика не срабатывает вовремя? Я делаю это в silverlight, который, похоже, не имеет доступа к System.Timers. То же самое, кажется, происходит с 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;
}

Есть идеи?

5
задан James Santiago 23 November 2010 в 00:30
поделиться