问题标签 [thread-sleep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
30307 浏览

c# - 应用程序运行时循环睡眠,但睡眠太少

为什么Thread.sleep不工作。我一直在等待消息。我希望该应用程序将等待 10 分钟,然后再继续。

0 投票
3 回答
11067 浏览

c# - 在 ASP.NET 中使用 Thread.Sleep(int) 是否明智,还是应该使用其他方法?

我想在一些测试功能期间引入轻微的等待,以模拟服务器调用。使用Thread.Sleep(int)引入等待是明智的还是有更好的方法让服务器等待?

请注意,我将暂停足​​够长的时间让我在视觉上看到足够的延迟,即使我不希望在实际应用程序中看到这样的延迟。这是为了让我想象可能发生的实际延迟。

我计划在 VS2010 本地调试器网络服务器和 IIS 7 中运行它。我在 .NET 3.5 上

0 投票
3 回答
2071 浏览

java - 尝试创建稳定的游戏引擎循环

我正在编写一个相当简单的 2D 多人网络游戏。现在,我发现自己几乎不可能创建一个稳定的循环。稳定是指这样一种循环,其中完成了某些计算并且在严格的时间段内重复(比如说,每 25 毫秒,这就是我现在正在争取的)。到目前为止,我还没有遇到很多严重的障碍,除了这个。

在这个游戏中,服务器和客户端应用程序中都有多个线程正在运行,分配给各种任务。让我们以我的服务器应用程序中的引擎线程为例。在这个线程中,我尝试使用 Thread.sleep 创建游戏循环,尝试考虑游戏计算所花费的时间。这是我的循环,放在 run() 方法中。Tick() 函数是循环的有效负载。它只包含对其他方法进行持续游戏更新的有序调用。

<...>

主要问题是 Thread.sleep 只是喜欢背叛你对它会睡多少的期望。它可以很容易地让线程休息更长或更短的时间,尤其是在一些装有 Windows XP 的机器上(我自己测试过,与 Win7 和其他操作系统相比,WinXP 给出了非常糟糕的结果)。我在互联网上闲逛了很多,结果令人失望。这似乎是我们正在运行的操作系统的线程调度程序及其所谓的粒度的错误。据我了解,该调度程序在一定时间内不断检查系统中每个线程的需求,特别是将它们从睡眠中唤醒/唤醒。当重新检查时间很短时,比如 1ms,事情可能看起来很顺利。虽然,据说 WinXP 的粒度高达 10 或 15 毫秒。我还读到,不仅是 Java 程序员,但是那些使用其他语言的人也面临这个问题。知道了这一点,似乎几乎不可能做出一个稳定、坚固、可靠的游戏引擎。然而,它们无处不在。我非常想知道通过哪种方式可以解决或规避这个问题。有经验的人可以给我一个提示吗?

0 投票
1 回答
17934 浏览

android - 强制布局(),请求布局()

我对 android 文档的阅读发现了 forceLayout() 方法(在下一个布局请求时生成布局显示)和 requestLayout() (应该发布即时布局请求),但我无法让它们表现如宣传的那样。特别是,如果我在 Thread.Sleep 之前和之后设置一个文本,它会等待 Sleep 完成,然后同时设置两个文本,无论我是否调用 forceLayout() 和 requestLayout() 。请不要对我不应该如何在 UI 线程中调用 Thread.Sleep 胡说八道。如果我将 Thread.Sleep 包装在 CountDownTimer 中,它工作得非常好(只要我的滴答时间足够短而不会干扰睡眠时间,并且计时器的持续时间足够长以允许睡眠完成。以下是一个例子:

0 投票
4 回答
2454 浏览

c# - 保持 UI 响应的 Thread.Sleep 的替代方案?

我在 Visual Studio 2008 中的 C# 中完成所有这些工作。

我想减慢我的算法的工作速度,以便用户可以观看它的工作。GUI 上有一个可见的周期性变化,所以我Thread.Sleep在每个实例之后添加。

问题是Thread.Sleep,当设置为至少一秒时,在几个实例之后Thread.Sleep(经过几个循环)只会冻结整个 GUI 并保持这种状态直到程序完成。不是马上,但它总是会发生。多快取决于睡眠的时间长短。

我有证据表明整个程序没有冻结,它正在工作,甚至睡眠也在正确长度的暂停。但是 GUI 在某个点冻结,直到算法结束,此时它显示正确的最终状态。

如何解决这个问题?替代在某个点暂停算法?

0 投票
2 回答
1372 浏览

java - 如何使用 Thread.sleep 显示简单的下降动画?

我正在制作一个游戏板,我想展示游戏板动画,动画是一个像这样掉下来的对象,


time=0
○○○<br> ○○○<br> ○○○<br> ○○○<br> time=1
●○○<br> ○○○<br> ○○○<br> ○○ ○<br> time=2
●○○<br> ●○○<br> ○○○<br> ○○○<br> time=3
●○○<br> ●○○<br> ●○○< br> ○○○<br> time=4
●○○<br> ●○○<br> ●○○<br> ●○○


但我无法得到我想要的,它直接显示时间=4,错过了时间=0-3的步骤,这是什么问题?我该如何解决?或者任何其他简单的方法来做到这一点?谢谢你。
画板方法:

但是,当我运行代码时,输​​出是这样的:


time=0,1,2,3
○○○<br> ○○○<br> ○○○<br> ○○○<br> time=4
●○○<br> ●○○<br> ●○ ○<br> ●○○


0 投票
5 回答
3655 浏览

.net - VB.net 不一致的线程睡眠定时器

好的,所以我一直在玩 VB.net 并集思广益,以实现每 60 秒可靠地启动一个线程,而不管之前的线程需要多长时间来完成它的工作。这是我的问题。给定以下代码:

在 stream.txt 文件中生成它。

我对此输出的假设是每行之间的时间必须恰好是 5000 毫秒加上执行循环其余部分所需的时间,考虑到磁盘 IO 可能存在未知延迟,这可能会有所不同。我的问题是,查看第 10 行和第 11 行并进行减法运算会给我带来 4,958 毫秒的差异。所以我的问题是那里到底发生了什么?当我告诉线程在完成进程之前休眠 5000 毫秒时,怎么可能得到小于 5000 毫秒的差异。我错过了什么?

0 投票
2 回答
259 浏览

c++ - 线程应用程序中的睡眠命令

Windows 中的 Sleep(ms) 命令导致线程释放它们的时间片。是否有一个等效的 Sleep(ms) 命令可以停止线程但不释放时间片?

0 投票
1 回答
524 浏览

java - 为什么我的 Java Zork 克隆无法正确循环?

我正在制作一个 Zork 克隆,每当它循环时,Eclipse 中就会出现一个错误:

0 投票
2 回答
21959 浏览

android - 等待信号量循环时的 SystemClock.sleep() 与 Thread.sleep()

为了同步/排队访问共享资源,我将使用Semaphore,并借助等待循环。

为了不遇到 CPU 挂钩,我想在那个循环中sleep()稍微深入一点。while

我搜索了http://developer.android.com参考,发现了两个这样的 sleep() 函数,我很困惑哪一个适合哪种场景:

  1. 线程.sleep()
  2. SystemClock.sleep()

哪一个更适合我描述的情况,为什么?