作用:延时,程序暂停若干时间。
时间,就是他的参数,单位是毫秒。
例如:
Sleep (500) ;
就是到这里停半秒,然后继续向下执行。
——————————————————
在Linux C语言中 Sleep的单位是秒
Sleep(5); //停5秒
注意:Sleep的S要大写。
——————————————————
Visual Basic
声明:Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
库名:kernel32
说明:dwMilliseconds 必要参数,停顿的时间。单位:毫秒(ms)
文章出处:DIY部落(>
从你追问的图上看,不是sleep的问题,是vc的问题。具体解决方案如下:
“CLexe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,
你可以到相应的路径下找到这个应用程序。
因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—> “Option(选择)”
—> “Directories(目录)”重新设置“Excutable Fils、Include Files、
Library Files、Source Files”的路径。很多情况可能就一个盘符的不同
(例如你的VC装在C,但是这些路径全部在D),改过来就OK了。
如果你是按照初始路径安装vc60的,路径应为:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT
include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
如果你装在其他盘里,则仿照其路径变通就行
Qt 为何没有提供 Sleep
论坛上不时见到有人问:
Qt 为什么没有提供跨平台的 sleep 函数?
使用平台相关的 Sleep 或 nanosleep 以后,界面为什么没有反应?
QThread 中提供了protected 权限的 sleep 函数,如何用到主线程中?
使用 QTest 中的 qSleep,在windows下如何隐藏控制台?
这些问题其实归结为一点:在主线程中使用这些函数是一种错误,这会直接导致界面无法刷新,用户与程序无法交互。
Qt不提供,是因为你不需要在主线程中使用 sleep 函数。
如何让程序等待一段时间
QTime
QTime t;
tstart();
while(telapsed()<1000);
这种死循环也是一种常见错误用法。但改成正确的还是比较简单的:
QTime t;
tstart();
while(telapsed()<1000)
QCoreApplication::processEvents();
不停地处理事件,以使得程序保持响应。
QElapsedTimer
这是Qt47引入的新的类,和QTime相比,它提供了更快的计算 elapsed 时间的方法。
QElapsedTimer t;
tstart();
while(telapsed()<1000)
QCoreApplication::processEvents();
QTest::qWait
这是QTest模块提供的等待函数
下面是其源代码(和我们前面的代码很像吧?):
namespace QTest
{
inline static void qWait(int ms)
{
Q_ASSERT(QCoreApplication::instance());
QElapsedTimer timer;
timerstart();
do {
QCoreApplication::processEvents(QEventLoop::AllEvents, ms);
QTest::qSleep(10);
} while (timerelapsed() < ms);
}
其实没什么魔力,对吧?但是因为它QTest模块,所以在程序中我们不要使用它。
QEventLoop
配合QTimer使用局部的 eventLoop 也是一个不错的选择。例子:
QEventLoop eventloop;
QTimer::singleShot(100, &eventloop, SLOT(quit()));
eventloopexec();
QTimer 和 QBasicTimer
这两个和本文没有什么直接关系,QTimer估计大家都很熟了。而QBasicTimer估计很少有人用。
与QTimer相比,QBasicTimer更快速、轻量、底层。
与QTimer相比,它不是QObject的派生类。
跨平台的sleep
尽管一开始我们就说了,不需要这个东西。但不排除某种场合下,你确实需要这个东西。如何实现一个跨平台的 sleep 呢?
我们一开始也提到了,QThread类 和 QTest模块都提供了sleep函数,其实我们只需要看看他们的源码就够了:
QTest 模块中的函数很简单(windows下调用Sleep,其他平台调用 nanosleep):
void QTest::qSleep(int ms)
{
QTEST_ASSERT(ms > 0);
#ifdef Q_OS_WIN
Sleep(uint(ms));
#else
struct timespec ts = { ms / 1000, (ms % 1000) 1000 1000 };
nanosleep(&ts, NULL);
#endif
}
看QThread的源码,windows下同样直接调用Sleep,但非windows的实现比这个就复杂多了:
[cpp] view plain copy
/ /internal
helper function to do thread sleeps, since usleep()/nanosleep()
aren't reliable enough (in terms of behavior and availability)
/
static void thread_sleep(struct timespec ti)
{
pthread_mutex_t mtx;
pthread_cond_t cnd;
pthread_mutex_init(&mtx, 0);
pthread_cond_init(&cnd, 0);
pthread_mutex_lock(&mtx);
(void) pthread_cond_timedwait(&cnd, &mtx, ti);
pthread_mutex_unlock(&mtx);
pthread_cond_destroy(&cnd);
pthread_mutex_destroy(&mtx);
}
void QThread::sleep(unsigned long secs)
{
struct timeval tv;
gettimeofday(&tv, 0);
struct timespec ti;
titv_sec = tvtv_sec + secs;
titv_nsec = (tvtv_usec 1000);
thread_sleep(&ti);
}
在<windowsh>里面。
在VC中使用时,sleep函数的头文件为windows。h,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同
在VC中,Sleep中的第一个英文字符为大写的"S",在linux下不要大写,在标准C中是sleep,不要大写,简单的说VC用Sleep,别的一律使用sleep
在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);在Linux下,sleep()里面的单位是秒,而不是毫秒。
扩展资料:
Windowsh头文件之所重要,是因为头文件封装了许多库函数以及一些类,将一些复杂的工作由库函数处理,Windowsh头文件中包含了Windefh、Winnth、Winbaseh、Winuserh、Wingdih等头文件,涉及到了Windows内核API,图形界面接口,图形设备函数等重要的功能。
在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
参考资料来源:百度百科-windowsh
Sleep()函数
头文件:
#include
int
dt
=
1000;
它的功能是执行到Sleep(dt)函数时,程序睡觉(就是等在那里)
dt
毫秒。
dt
=
1000,
程序睡觉
1
秒。同
缓冲区
没有关系。
Sleep()函数
时间
计时
不很精确,每秒可能有25毫秒误差。
以上就是关于给一个c++中的sleep函数的定义和用法!谢谢全部的内容,包括:给一个c++中的sleep函数的定义和用法!谢谢、线程中sleep怎么会影响到主程序sleep、在C++中如何让程序停一秒钟我是用SLEEP()函数,编译都会出错,为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)