我正在使用自定义动画开发Silverlight应用程序。我想每1毫秒更新一次变量animationCounter,以便在一秒钟内值为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.我不知道为什么。有什么我想念的。
由于
答案 0 :(得分:3)
文档应说明定时器的分辨率不是1毫秒,但最小分辨率为10毫秒;)它没有考虑到。无论如何,最小的计时器分辨率大约是10ms ...所以这是他们发射的最小间隔。
为什么哎呀(对不起)你还需要1ms吗?对我来说听起来毫无用处。动画应该可以,每秒大约25到60次更新 - 其余的眼睛无论如何都看不到。