- UID
 - 66114
 
 注册时间2010-4-1
阅读权限30
最后登录1970-1-1
龙战于野 
  
 
 
 
TA的每日心情  | 慵懒 2019-3-12 17:25 | 
|---|
 
  签到天数: 3 天 [LV.2]偶尔看看I  
 | 
 
 
发表于 2010-5-26 07:51:53
|
显示全部楼层
 
 
 
1// testtimer.cpp : 定义控制台应用程序的入口点。 
 2// 
 3 
 4#include "stdafx.h" 
 5#include <windows.h> 
 6#include <conio.h> 
 7 
 8static UINT idTimer = 0; 
 9static int reentry = 0; 
10static int call_cnt = 0; 
11 
12void LengthyWork(void) 
13{ 
14    //Sleep(3000); 
15    int i = 0,j = 0; 
16    for(i;i < 50000;) { 
17        i++; 
18        for(j = i;j > 0;) { 
19            j--; 
20        } 
21    } 
22 
23} 
24VOID CALLBACK OnTimer(HWND hwnd, 
25    UINT uMsg, 
26    UINT_PTR idEvent, 
27    DWORD dwTime 
28) 
29{ 
30    ++call_cnt; 
31    printf("entry(%d)  reentry:%d\n",call_cnt,reentry); 
32    ++reentry; 
33    LengthyWork(); 
34    --reentry; 
35    printf("exit(%d)   reentry:%d\n",call_cnt,reentry); 
36} 
37int _tmain(int argc, _TCHAR* argv[]) 
38{ 
39    idTimer = SetTimer(NULL,0,1000,OnTimer); 
40    int ret = 0; 
41    MSG msg; 
42    while(1) { 
43        if(kbhit()) { 
44            return 0; 
45        } 
46        ret = GetMessage(&msg,NULL,0,0); 
47        if(ret) { 
48            TranslateMessage(&msg); 
49            DispatchMessage(&msg); 
50        } 
51    } 
52    return 0; 
53} 
54 
一次执行结果如下: 
entry(1)  reentry:0 
exit(1)   reentry:0 
entry(2)  reentry:0 
exit(2)   reentry:0 
entry(3)  reentry:0 
exit(3)   reentry:0 
entry(4)  reentry:0 
exit(4)   reentry:0 |   
 
 
 
 |