windows核心编程-可等待的计时器内核对象
2016-12-07 14:57
267 查看
要创建可等待的计时器,我们需要调用CreateWaitableTimer函数
bManualReset表示要创建的是一个手动重置计时器还是自动重置计时器。当手动计时重置计时器被触发的时候,
正在等待该计时器的所有线程编程可调度状态;自动计时器被触发的时候,只有一个正在等待该计时器的线程回
变成可调度状态。
在创建的时候,可等待的计时器对象总是处于未触发状态。当我们想要触发计时器的时候,必须要调用SetWaitableTimer
函数来告诉他:
因为pDueTime是LARGE_INTEGER类型的参数所以当声明为SYSTEMTIME st;的时候,应该
SystenTimeToFileTime(&st,&ftLocal);// 先转换为FILETIME
LocalFileTimeToFileTime(&ftLocal,&ftUTC);//然后再转换为FILETIMETIME UTC
lPeriod表示触发的频度,单位是微秒,1s=1000ms=1000 000vs
当pDueTime传入的是负值的时候,表示相对时间,即SetWaitableTime调用结束后的相对时间
当lPeriod传入的是0的时候,表示计时器只触发一次。然后我们就可以CloseHandle来关闭计时器了
或者再次调用SetWaitableTimer来重置计时器。
pfnCompletionRoutine:当赋值的时候,时间一到,就把一个APC添加到队列当中,但是这个线程必须是
等待状态的。
HANDLE WINAPI CreateWaitableTimer( _In_opt_ LPSECURITY_ATTRIBUTES lpTimerAttributes, _In_ BOOL bManualReset, //TRUE手动,FALSE自动 _In_opt_ LPCTSTR lpTimerName );
bManualReset表示要创建的是一个手动重置计时器还是自动重置计时器。当手动计时重置计时器被触发的时候,
正在等待该计时器的所有线程编程可调度状态;自动计时器被触发的时候,只有一个正在等待该计时器的线程回
变成可调度状态。
在创建的时候,可等待的计时器对象总是处于未触发状态。当我们想要触发计时器的时候,必须要调用SetWaitableTimer
函数来告诉他:
BOOL WINAPI SetWaitableTimer( _In_ HANDLE hTimer, //想要触发的计时器 _In_ const LARGE_INTEGER *pDueTime, //第一次触发的时间,注意是大整数类型的 _In_ LONG lPeriod, //触发的频度 _In_opt_ PTIMERAPCROUTINE pfnCompletionRoutine, //当不用异步的时候为NULL,否则传入APC函数
_In_opt_ LPVOID lpArgToCompletionRoutine, _In_ BOOL fResume );
因为pDueTime是LARGE_INTEGER类型的参数所以当声明为SYSTEMTIME st;的时候,应该
SystenTimeToFileTime(&st,&ftLocal);// 先转换为FILETIME
LocalFileTimeToFileTime(&ftLocal,&ftUTC);//然后再转换为FILETIMETIME UTC
lPeriod表示触发的频度,单位是微秒,1s=1000ms=1000 000vs
当pDueTime传入的是负值的时候,表示相对时间,即SetWaitableTime调用结束后的相对时间
当lPeriod传入的是0的时候,表示计时器只触发一次。然后我们就可以CloseHandle来关闭计时器了
或者再次调用SetWaitableTimer来重置计时器。
BOOL CancelWaitableTimer(HANDLE hTimer) //表示取消句柄所标识的计时器
pfnCompletionRoutine:当赋值的时候,时间一到,就把一个APC添加到队列当中,但是这个线程必须是
等待状态的。
相关文章推荐
- 第9章 用内核对象进行线程同步(2)_可等待计时器(WaitableTimer)
- 多线程 -- 可等待的计时器内核对象
- 线程同步——内核对象实现线程同步——可等待计时器内核对象
- Chapter09-“内核模式下的线程同步”之可等待的计时器内核对象
- 白话windows多线程同步之可等待计时器内核对象
- 内核对象--可等待计时器WaitableTimer(一)
- Chapter09-“内核模式下的线程同步”之可等待的计时器内核对象
- 可等待计时器内核对象的使用(CreateWaitableTimer)
- 内核对象--可等待计时器WaitableTimer(二)
- windows程序设计 and windows核心编程(内核对象理论)
- 《Windows核心编程》读书笔记三 内核对象
- 《Windows核心编程》——三 内核对象
- Windows核心编程 第三章 内核对象
- windows笔记-【内核对象线程同步】等待定时器内核对象
- windows核心编程第三章学习事件内核对象代码
- 《Windows核心编程》学习——内核对象
- Windows核心编程 第三章 内核对象
- Windows核心编程:用内核对象进行线程同步
- 《windows核心编程》第三讲 内核对象(1)内核对象简介
- Windows核心编程 第九章 线程与内核对象的同步(上)