-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.cpp
More file actions
67 lines (57 loc) · 1.7 KB
/
Copy pathmain.cpp
File metadata and controls
67 lines (57 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "TimeWheelMgr.h"
#include <Windows.h> // Sleep
#include <cstdint>
#include <iostream>
using namespace std;
void print_now() {
SYSTEMTIME sys;
GetLocalTime(&sys);
printf("%4d/%02d/%02d %02d:%02d:%02d.%03d \n", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);
}
int main(){
TimeWheelMgr timerMgr;
uint64_t interval = 10 * Granularity::Second;
/*Timer timer(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",10秒定时器" << endl;
});
timerMgr.AddTimer(timer);
interval = 30 * Granularity::Second;
Timer timer1(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",30秒定时器" << endl;
});
timerMgr.AddTimer(timer1);*/
interval = 30 * Granularity::Second + 1 * Granularity::Minute;
Timer timer2(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",1分30秒定时器" << endl;
});
timerMgr.AddTimer(timer2);
interval = 30 * Granularity::Second + 1 * Granularity::Hour;
Timer timer3(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",1时30秒定时器" << endl;
});
timerMgr.AddTimer(timer3);
interval = 30 * Granularity::Second + 1 * Granularity::Day;
Timer timer4(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",1天30秒定时器" << endl;
});
timerMgr.AddTimer(timer4);
interval = 30 * Granularity::Second + 1 * Granularity::Week;
Timer timer5(interval, [&]() {
print_now();
cout << "times=" << timerMgr.times() << ",1星期30秒定时器" << endl;
});
timerMgr.AddTimer(timer5);
print_now();
while(true){
int64_t next_tick = timerMgr.update();
if(next_tick > 0)
Sleep(next_tick);
}
return 0;
}