- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为 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/
在我的 iPad 应用程序中,我试图让 tableView 以预定的间隔滚动。为此,我创建了一段代码,为每个滚动创建一个闭包。然而,关闭的执行时间比我想要的时间晚了几秒钟。这是一个简化的 Playgr
我正在处理一些旧代码。以下是我无法转换或无法理解的两行(旧代码): let dispatchTime = dispatch_time(dispatch_time_t(DispatchTime.now(
我正在为 WP7 开发一个骰子游戏,该游戏每回合涉及多次掷骰。在轮到 CPU 时,我需要减慢进程,以便用户可以看到发生了什么。仔细研究后,我发现可以通过这种方式使用 DispatchTimer。 问题
DispatchTime.now() 到底发生了什么 为什么我不能将等待时间分配为变量? 我如何使用变量? 给定错误>>> Binary operator '+' cannot be applied
我正在尝试使用调度计时器测量按键事件之间耗时(以毫秒为单位),但是当声明调度计时器具有 1 毫秒的间隔然后建立滴答事件时,它不会每 1 毫秒触发一次,而是在某处触发像 10-100 毫秒(猜测)。如果
我正在使用 DispatchTime.now() 来测量事件之间耗时。有时它工作正常,但有时它生成的值远低于我的预期。 我目前的使用情况: var t = DispatchTime.now() var
下午好 我正在尝试在 View 模型中触发 ICommand...从 View 模型,而不是从 UI。 该命令在 UI xaml 中运行良好,但是,在这个不同的场景中,它却不能。 private Di
我正在尝试为 Swift4 中的计时器设置可变时间延迟,但是当我输入变量时,出现错误: Binary operator '+' cannot be applied to operands of typ
我试图在 Swift4 中创建一个由变量控制的计时器,唯一的问题是我收到错误: Cannot convert value of type 'UInt64' to expected argument t
我是一名优秀的程序员,十分优秀!