Silverlight定时器问题

发布于 2024-08-25 04:16:01 字数 931 浏览 5 评论 0原文

我正在开发一个带有自定义动画的 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。我不知道为什么。我有什么遗漏的吗?

谢谢

I am developing a Silverlight application with custom animations. I want to update the variable animationCounter every 1 milissecond, so that in one second the value is 1000. I've tried DispatcherTimer and System.Threading.Timer. this way:

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());
}

with 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());
}

Both of them are setting AnimationCounter around 100 in one second. Should be 1000. I don't know why. Is there anything I'm missing.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北凤男飞 2024-09-01 04:16:01

文档应说明计时器的分辨率不是 1 毫秒,而是最小 10 毫秒;)似乎没有。无论如何,最小计时器分辨率约为 10 毫秒……所以这是它们触发的最小间隔。

到底为什么(抱歉)你需要 1 毫秒?对我来说听起来没什么用。每秒更新 25 - 60 次左右的动画应该没问题 - 其余的无论如何眼睛都看不到。

Documentation should state that the timers do not have a resolution of 1ms, but of 10ms minimum ;) It does no tseem to. Anyhow, minimal timer resolution is around 10ms... so that is the smallest interval they fire.

Why the heck (sorry) do you need 1ms anyway? Sounds useless to me. An animation should be ok with around 25 - 60 updates per second - the rest the eye can not see anyway.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文