多线程技术实现了一个简单的定时器类
来源:互联网 发布:iphone7屏幕录制软件 编辑:程序博客网 时间:2024/06/05 17:34
- // 头文件的定义
- #ifndef CTIMER_H_
- #define CTIMER_H_
- #include <Windows.h>
- class CTimer
- {
- public:
- CTimer();
- ~CTimer();
- void StartTimer(unsigned int nElapse);
- void EndTimer();
- static DWORD WINAPI ThreadFunc (LPVOID pParam);
- private:
- unsigned int m_Elapse;
- HANDLE m_hThread;
- };
- #endif
- /********CTimer.cpp***********/
- #include <time.h>
- #include <iostream>
- #include "CTimer.h"
- using namespace std;
- CTimer::CTimer():m_Elapse(0), m_hThread(NULL)
- {
- }
- CTimer::~CTimer()
- {
- }
- void CTimer::StartTimer(unsigned int nElapse)
- {
- m_Elapse = nElapse;
- m_hThread = CreateThread(NULL, 0, ThreadFunc, (LPVOID)(&m_Elapse), 0, NULL);
- }
- void CTimer::EndTimer()
- {
- CloseHandle(m_hThread);
- }
- DWORD WINAPI CTimer::ThreadFunc(LPVOID pParam)
- {
- time_t t1, t2;
- double Diff = 0;
- int elapse = *((int *)pParam);
- /*获取系统当前时间*/
- t1 = time(NULL);
- while(1)
- {
- /*以秒为单位获取系统当前时间*/
- t2 = time(NULL);
- /*比较第二次获取的时间与第一次的时间是不是间隔了两秒*/
- Diff = difftime(t2,t1);
- /*间隔两秒打印Diff和i*/
- if((int)Diff == elapse)
- {
- cout<<"Time out!"<<endl;
- t1 = t2;
- }
- }
- return 0;
- }
- /********测试程序************/
- #include "CTimer.h"
- #include <stdio.h>
- int main()
- {
- CTimer timer;
- timer.StartTimer(1);
- Sleep(8000);
- timer.EndTimer();
- return 0;
- }
- 多线程技术实现了一个简单的定时器类
- 多线程学习--写一个简单的定时器
- 多线程之简单定时器的实现代码
- 一个简单定时器的实现(C++)
- 一个简单定时器的实现(C++)
- [Java定时器]用Spring Task实现一个简单的定时器.
- 如何利用多线程写一个简单的定时器?
- 一个简单的定时器
- 一个简单的定时器
- 简单定时器的实现
- linux内核定时器--------一个简单的timer的实现
- 本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。
- 一个简单多线程爬虫的实现
- 一个比较简单的 newFixedThreadPool多线程实现
- 8e 用定时器实现一个简单的取色器
- 一个最小堆简单定时器的实现demo
- windows客户端开发--实现一个多线程定时器
- 如何用python实现一个多线程定时器
- Android Call 功能在各个frameworks层中的结构整理 (三)
- ArrayList,LinkedList,Vector的关系和区别
- bush
- OVAL user guides (the object validation framework for Java)
- ASP.NET MVC 常见错误
- 多线程技术实现了一个简单的定时器类
- 生成SSL证书
- apache solr 安装
- 线程的终止与回收
- hdu 1082 Matrix Chain Multiplication--表达式求值
- 宣告式动画
- Linux内核编译简略步骤
- ThreadLocal 实例
- Linux系统初体验,U盘启动盘制作失败。