Я занимаюсь разработкой приложения 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. Я не знаю почему. Есть ли что-то, что я пропускаю.
Спасибо