我正在尝试学习nodejs和我正在工作的一个小项目正在编写一个API来控制一些联网的LED灯.
控制LED的微处理器具有处理延迟,我需要将发送到微处理器的命令间隔至少100ms.在C#中,我习惯只调用Thread.Sleep(时间),但我没有在节点中找到类似的功能.
我在节点中使用setTimeout(...)函数找到了几个解决方案,但是,这是异步的并且不会阻塞线程(这是我在这种情况下所需要的).
有人知道阻塞睡眠或延迟功能吗?最好是不仅能旋转CPU,而且精度为+ -10 ms的东西?
我不确切地知道如何搜索这个...所以我没有任何运气找到任何东西..:S
我需要在C中实现延时.
例如,我想做一些事情,然后等一分钟,然后继续做一些事情.
这有意义吗?谁能帮我吗?
在PHP中,我想在循环的每次迭代中放置一些第二延迟.
for ($i=0; $i <= 10; $i++) {
$file_exists=file_exists($location.$filename);
if($file_exists) {
break;
}
//sleep for 3 seconds
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
嗨再次网站大师:)现在,我有一个新的愚蠢的问题,我要求原谅我.我到处都读到了这个解决方案,但没有找到适合我的解决方案.
我有:
<input name="domain" type="text" id="domain" onKeyUp="javascript:chk_me();">
Run Code Online (Sandbox Code Playgroud)
我要问的是如何在按下按钮后不进行检查,但之后说1000毫秒的键盘不活动?
我想在我的代码中延迟1秒钟.下面是我试图延迟的代码.我认为它会轮询操作系统的日期和时间,并等到时间匹配.我有延迟的问题.我认为它不会轮询与等待时间匹配的时间,它只是坐在那里并冻结.它只会冻结我运行代码的大约5%的时间.我想知道Application.Wait以及是否有办法检查轮询时间是否大于等待时间.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Run Code Online (Sandbox Code Playgroud) 我为我的Web应用程序创建了一个注册页面.应用程序要求用户成功注册新帐户后,页面将显示"注册成功"消息,然后等待5秒再切换到"登录"页面.我用过Thread.Sleep(5000)
.它等待5秒但不显示消息.谁能帮我?
void AccountServiceRegisterCompleted(object sender, RegisterCompletedEventArgs e)
{
if (e.Result)
{
lblMessage.Text = "Register successfully";
Thread.Sleep(5000);
this.SwitchPage(new Login());
}
else
{
...
}
}
Run Code Online (Sandbox Code Playgroud) 我有2个不同麦克风的同一信号的两个录音(例如,WAV格式),但其中一个录音有延迟,例如几秒钟.
当在某种波形观察器中查看这些信号时,很容易在视觉上识别这种延迟 - 即只是在每个信号中发现第一个可见峰值并确保它们是相同的形状:
http://www.greycat.ru/temp/time-delay-peaks.png
但是我如何以编程方式进行 - 找出这个延迟(t)是什么?两个数字化信号略有不同(因为麦克风不同,由于ADC设置等原因位于不同位置).
我已经挖了一下,发现这个问题通常被称为"时间延迟估计",它有无数的方法 - 例如,其中之一.
但是有没有简单的现成解决方案,例如命令行实用程序,库或直接算法?
结论:我发现没有简单的实现,并且自己完成了一个简单的命令行实用程序 - 可从https://bitbucket.org/GreyCat/calc-sound-delay(GPLv3-licensed)获得.它实现了维基百科中描述的非常简单的最大搜索算法.
我正在开发用C编写的游戏服务器.我需要开发一个具有特定频率(每秒50次)的循环来执行算法.问题是我无法暂停程序一段精确的时间间隔 - 20000微秒.函数usleep(20000)
运行大约30000微秒.结果总是比预期的10000微秒更多.
这是我的简单代码示例:
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main( int argc, char ** argv )
{
const unsigned long long nano = 1000000000;
unsigned long long t1, t2;
struct timespec tm;
for(;;)
{
clock_gettime( CLOCK_REALTIME, &tm );
t1 = tm.tv_nsec + tm.tv_sec * nano;
usleep( 20000 );
clock_gettime( CLOCK_REALTIME, &tm );
t2 = tm.tv_nsec + tm.tv_sec * nano;
printf( "delay: %ld\n", ( t2 - t1 ) / 1000 );
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它运行的结果是:
$ …
Run Code Online (Sandbox Code Playgroud)