【发布时间】:2015-03-02 17:33:07
【问题描述】:
我正在制作一个记忆游戏。每当用户单击按钮时,就会显示图像。然后用户必须单击另一个按钮。如果两个图像匹配,则按钮将替换为刻度线。如果没有,则用户有 1 秒的间隙来记住图像位置。然后,图像被隐藏并显示按钮。 我做了 1 秒的间隔 线程.Sleep(1000)
我在游戏中嵌入了一个倒计时计时器,其持续时间为 30 秒。我已经放置了一个标签,显示每个时钟滴答的 30 秒倒计时。
现在实际的问题是,每当调用 Thread.Sleep(1000) 时,计时器就会停止。 1 秒后,它恢复。无论线程如何,我都希望这个计时器执行。请帮忙。
【问题讨论】:
-
解决方案是不阻塞 UI 线程,而不是阻塞 UI 线程并让 UI 仍然响应。
-
如果你有一个计时器,你为什么要首先调用 Thread.Sleep(1000) ?请发布一些代码供我们研究。
-
因为计时器与您执行它的线程位于同一线程上,这也是 Thread.Sleep 所在的线程 - 这就是问题所在。你需要分开 2....当你在做 Thread.Sleep 时,你阻塞了你的主线程(在这种情况下是 UI)线程。显示您当前使用的代码!
-
System.Threading.Thread.Sleep != System.Threading.Timer
标签: c# multithreading timer