gpt4 book ai didi

c# - 在 Silverlight Mobile 中实现 DispatchTimer

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:23 25 4
gpt4 key购买 nike

我正在为 WP7 开发一个骰子游戏,该游戏每回合涉及多次掷骰。在轮到 CPU 时,我需要减慢进程,以便用户可以看到发生了什么。仔细研究后,我发现可以通过这种方式使用 DispatchTimer。

问题是,我不知道它是如何工作的。查看 MSDN 文档只会让我摸不着头脑,大多数在线示例都将其链接到按钮按下或鼠标点击。

所以我有一个 do while 循环,它调用我的掷骰子函数五次并更改骰子图像以显示结果。

现在定时器的代码是:

DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,1);
dispatcherTimer.Start();

然后:

  private void dispatcherTimer_Tick(object sender, EventArgs e)
{
int i = 0;
do
{
cpuTurn();
i++;
}
while(i < 6);
}

但这行不通。那我做错了什么?我是否以错误的方式使用了计时器?

最佳答案

是的,在您的事件处理程序完成之前,显示不会更新。只调用 cpuTurn() 一次。将循环计数器移到方法之外,使其成为类成员。计数到 6 时调用 dispatcherTimer.Stop()。当再次轮到 CPU 时,重置计数器并调用 Start()。

谷歌“事件驱动编程”以了解有关编写 GUI 代码时所需的编程类型的更多信息。

关于c# - 在 Silverlight Mobile 中实现 DispatchTimer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4174978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com