VC函数中的延时操作

2016-02-19 20:11 18 1 收藏

下面请跟着图老师小编一起来了解下VC函数中的延时操作,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

  VC函数中的延时操作

  我在这里把论坛里能见到的几种延时方式总结一下。

COleDateTime  start_time = COleDateTime::GetCurrentTime();

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

 COleDateTimeSpan  end_time = COleDateTime::GetCurrentTime() - start_time; 

while(end_time.GetTotalSeconds()  =  2)

 {    MSG  msg;    GetMessage(&msg,NULL,0,0);  

 TranslateMessage(&msg);

   DispatchMessage(&msg);   

end_time = COleDateTime::GetCurrentTime() - start_time;  }

  还有一点说明,因为COleDateTimeSpan类的成员函数还有:GetTotalMinutes、GetTotalHours、GetTotalDays,能够实现更大时间段的延时。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    往更小的时间跨度上说,执行毫秒级的延时用GetTickCount就行:DWORD dwStart = GetTickCount();DWORD dwEnd = dwStart;do{    MSG  msg;    GetMessage(&msg,NULL,0,0);    TranslateMessage(&msg);    DispatchMessage(&msg);    dwEnd = GetTickCount();  } while((dwEnd - dwStart)  =  2000);

    然后是微秒级延时:LARGE_INTEGER  litmp ;LONGLONG  QPart1,QPart2 ;double d=0;QueryPerformanceCounter(&litmp) ; // 获得初始值QPart1 = litmp.QuadPart ;while (d40)//你想要的时间{    QueryPerformanceCounter(&litmp) ;    QPart2 = litmp.QuadPart ;    d=(double)(QPart2 - QPart1);}。

  最后,如果还不能满足,那就去做时钟周期的延时吧:

#define NOP_COUNT 3//需要自己根据NOP及LOOP的指令周期计算.__asm {  MOV ECX, NOP_COUNTDELAY: NOP  LOOP DELAY }不过,用VC做这个工作是不是有点……

来源:http://www.tulaoshi.com/n/20160219/1622982.html

延伸阅读
void Split(CString content, CString pattern, CAtlArrayCString& strlist) {     int iPos = content.Find(pattern), iStart = 0;     while (iPos != -1)     {         strlist.Add(content.Mid(iStart, iPos - iStart));     &...
在VC编程中,操作文件的方法主要有两种:利用API函数和MFC的CFile类。微软在其中封装了文件的一般操作,下面我就介绍一下如何利用这两种方法实现文件操作。 1.创建或打开一个文件 API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。 HANDL...
回调函数说白了就是事件响应程序,Windows的每个消息可以理解为一个事件,事件的响应代码要由用户自己来定义。用户定义了事件响应的代码,但还要Windows知道这段代码的位置(要不然Windows就不知道如何去调用,这也没有用),于是用户需要将回调函数的指针告诉Windows,最典型的例子是在窗口类的结构(WNDCLASS)中给lpfnWndProc分量赋回调函数指...
标签: 电脑入门
Linux系统使用setitimer函数能够事项高精度的定时功能,用于定时执行function,下面图老师小编将针对setitimer函数的用法给大家做个详细介绍,一起来了解下吧。 说明: setitimer一个进程中只能有一个 下一个会覆盖前一个的定时 想一个进程多个定时器只能自己实现。 setitimer() 不支持在同一进程中同时使用多次以支持多个定时器。 l...
回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。本文不准备介绍这些函数和过程,而是谈谈实现自己的回调函数的一些经验。 ...

经验教程

467

收藏

51
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部