今天听公司的一个VC老鸟说在线程里做延迟只能用Sleep
不知对不对?反正我认为不对,但又说不出为什么,因为刚接触VC没多长时间
不知对不对?反正我认为不对,但又说不出为什么,因为刚接触VC没多长时间
解决方案 »
- -----------ActiveX控件测试----------
- 想入门视频,谁有最基础的资料?
- 关于Telnet输出的一些问题
- 这个复杂的结构怎么理解?
- 为什么不能这样用CryptoAPI加密?
- 用connect()函数和163邮件服务器端口25连接的问题!在线等
- 再次给分求助!安装的时候想在D盘根下建一文件夹。。。。。。
- 如何在响应某个事件之后让我的picture控件中的图画变成另外一幅?
- 怎样创建一个基于对话框的运行时隐藏界面?
- 翻译!
- 请问一下VC下的XML解析需要的环境?
- 我的VC2003总是无法添加GIF资源文件,每次都提示说:“is not a valid GIF file”,请遇到过的前辈指教(高分)
虽然偶也是新手,但也试过用别的来定时的
sleep精度太差了
而延时的话,则有好几种方式的。
我觉得比较好的方式是 HANDEL hWait = CreateEvent();
然后在线程里面去等这个时间
DWORD dwRet =
WaitForSingleOjbect(hWait,nWaitTime);
if(dwRet == WAIT_OBJECT_0)
{ //等到时间,
}
///
用EVENT有个好处,可以等多个事件,在需要退出线程的时候,不会造成程序阻塞
ColeDateTime start_time = ColeDateTime::GetCurrentTime();
ColeDateTimeSpan end_time = ColeDateTime::GetCurrentTime()-start_time;
While(end_time.GetTotalSeconds() <= 2)
{
MSG msg;
GetMessage(&msg,NULL,0,0);
PreTranslateMessage(&msg);
End_time = ColeDateTime::GetCurrentTime-start_time;
}