Проблема с таймером Silverlight - PullRequest
2 голосов
/ 09 марта 2010

Я занимаюсь разработкой приложения Silverlight с пользовательскими анимациями. Я хочу обновлять переменную animationCounter каждую 1 миллисекунду, чтобы за одну секунду значение было равно 1000. Я пробовал DispatcherTimer и System.Threading.Timer. таким образом:

DispatcherTimer timer = new DispatcherTimer(); (...)
timer.Interval = new TimeSpan(0, 0, 0, 0, 1);
timer.Tick += new EventHandler(timer_Tick); (...)

(...)

void timer_Tick(object sender, EventArgs e)
{
      animationCounter++;
      Dispatcher.BeginInvoke(() => txtAnimationCounter.Text = animationCounter.ToString());
}

с System.Threading.Timer

System.Threading timer = null;
timer = new System.Threading.Timer(UpdateAnimationCounter, 0, 1);

void UpdateAnimationCounter(object state)
{
                animationCounter++;
      Dispatcher.BeginInvoke(() => txtAnimationCounter.Text = animationCounter.ToString());
}

Оба они устанавливают AnimationCounter около 100 в секунду. Должно быть 1000. Я не знаю почему. Есть ли что-то, что я пропускаю.

Спасибо

1 Ответ

3 голосов
/ 09 марта 2010

В документации должно быть указано, что таймеры имеют разрешение не 1 мс, а минимум 10 мс;) Это не имеет значения. Во всяком случае, минимальное разрешение таймера составляет около 10 мс ... так что это наименьший интервал, который они запускают.

Почему, черт возьми (извините), вам все равно нужен 1 мс? Звучит бесполезно для меня. Анимация должна быть в порядке с 25 - 60 обновлениями в секунду - остальное глаз все равно не видит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...