延时函数求救 VC或API函数
想在VC中实现一延时功能 以毫秒为单位 不知调用哪个函数(VC或API函数)
请大虾们指点
问题点数:100、回复次数:16Top
1 楼zzq_fortu(郑)回复于 2002-03-28 14:51:40 得分 10
毫秒很难达到,一般
sleep()
大于53ms
不过参数单位是毫秒Top
2 楼prometheusphinx(白日梦)回复于 2002-03-28 14:51:43 得分 10
sleepTop
3 楼sdliubo(Fuck Japanese!)回复于 2002-03-28 14:52:04 得分 10
sleep()Top
4 楼nanjianhui(nan)回复于 2002-03-28 14:52:13 得分 10
Sleep(100) 100毫秒。好像是这样。
Top
5 楼nanjianhui(nan)回复于 2002-03-28 14:53:47 得分 10
还有一种方法更精确:
for(i=0; i<10000; i++)
;
自己慢慢调吧
Top
6 楼hollysky(爱神)回复于 2002-03-28 14:58:31 得分 0
WaitForSingleOject(100);Top
7 楼ahr(电磁波)回复于 2002-03-28 14:58:52 得分 0
Sleep(毫秒);Top
8 楼whz_time(TimesWU)回复于 2002-03-28 15:01:53 得分 0
Sleep(DWORD)
SleepEx(DWORD,BOOL)Top
9 楼tsf_PB(少飞)回复于 2002-03-28 15:02:37 得分 0
GetTickCount
注意多线程中使用会有问题
WaitForSingleOject()
Sleep
Top
10 楼ccnuxjg()回复于 2002-03-28 15:10:12 得分 0
long _first = GetTickCount();
long _end;
int youwanttime = 100;
for(;;)
{
_end = GetTickCount() - _first;
if( _end >= 100 )
break;
}
不知这样可不可以Top
11 楼ccnuxjg()回复于 2002-03-28 15:11:14 得分 0
好像可以精确到1/1000毫秒Top
12 楼oyf888(欧阳锋)回复于 2002-03-28 15:16:11 得分 0
同意ccnuxjg(钢铁就是这样炼成的!) 的办法,我想应该一点没问题Top
13 楼oyf888(欧阳锋)回复于 2002-03-28 15:17:43 得分 0
同意上面!Top
14 楼cris919(lovean)回复于 2002-03-28 15:21:22 得分 50
我来告诉你吧
void Delay(DWORD dwDelayTime)//延时ms
{
DWORD dwTimeBegin,dwTimeEnd;
dwTimeBegin=timeGetTime();
do{
dwTimeEnd=timeGetTime();
}while(dwTimeEnd-dwTimeBegin<dwDelayTime;
}
另外在工程中加入输入库winmm.lib使Delay可以调用timeGetTime函数
Top
15 楼zzq_fortu(郑)回复于 2002-03-28 15:22:15 得分 0
GetTickCount()好像会耗费系统资源的。Top
16 楼dlgab(guoaibin)回复于 2002-03-28 15:24:41 得分 0
最好用WaitForSingleOject(100);
若用Sleep()除非在该线程在延时过程中不响应任何操作。Top
17 楼cris919(lovean)回复于 2002-03-29 10:52:37 得分 0
调用我的函数精确到1ms
我已用在图象的各种效果显示中,一切okTop




