windows客户端开发--实现一个多线程定时器
来源:互联网 发布:php 二维数组重复 编辑:程序博客网 时间:2024/05/16 14:52
go了很久了,但是生活还得继续,工作还得继续,今天跟大家分享一个多线程的定时器。
Windows为我们提供了SetTimer和KillTimer
启动
SetTimer(m_hWnd, TESTWM_SENDDING_EMAIL_TIMER, 500, NULL);
响应
然后响应uMsg == TESTWM_SENDDING_EMAIL_TIMER
销毁
KillTimer(m_hWnd, TESTWM_SENDDING_EMAIL_TIMER);
实现一个多线程定时器
这里用标准C++写的,包括了一些C++11特性。
基本的知识之前的博客都有介绍:
时间库chrono库介绍:
C++11中的便利工具–chrono库(处理日期和时间)
http://blog.csdn.net/wangshubo1989/article/details/50507038
c++11 中线程介绍:
C++ 11特性之std::thread–初识
http://blog.csdn.net/wangshubo1989/article/details/49592517
C++11特性之std::thread–初识二
http://blog.csdn.net/wangshubo1989/article/details/49593429
C++11特性之std::thread–进阶
http://blog.csdn.net/wangshubo1989/article/details/49624575
c++11特性之std::thread–进阶二
http://blog.csdn.net/wangshubo1989/article/details/49624669
言归正传,实现一个多线程定时器:
#ifndef TIMER_H_#define TIMER_H_#include <thread>#include <chrono>class Timer{ std::thread th; bool running = false;public: typedef std::chrono::milliseconds Interval; typedef std::function<void(void)> Timeout; void start(const Interval &interval, const Timeout &timeout) { running = true; th = std::thread([=]() { while (running == true) { std::this_thread::sleep_for(interval); timeout(); } }); } void stop() { running = false; if (th.joinable()) { th.join(); } }};#endif // TIMER_H_
- windows客户端开发--实现一个多线程定时器
- 如何用python实现一个多线程定时器
- 多线程技术实现了一个简单的定时器类
- C#多线程实现定时器
- timerfd实现多线程定时器
- windows客户端开发--为你客户端sign一个签名证书
- C# .net 定时器,多线程实现定时器
- 怎么实现一个定时器?
- 【pthread系列-3】一个定时器的普通实现,多进程实现和多线程实现的对比
- C++多线程定时器完整实现
- 使用select实现多线程定时器
- windows客户端开发--判断一个文件夹中是否存在文件夹
- Windows客户端开发--只允许有一个实例运行
- windows多线程同步机制---可等候定时器
- Windows客户端开发--wininet和winsock实现上传文件
- 多线程学习--写一个简单的定时器
- Python定时器的一个实现
- 定时器:为 Windows 实现一个连续更新,高精度的时间供应器
- C++11中function和bind绑定函数的理解--其中可能存在理解错误。这里只是粗糙理解而已。
- QT 实现子控件的透明,可以实现主窗口设置背景皮肤
- 关于程序员间沟通问题
- spring boot 中的事务管理
- XML初涉
- windows客户端开发--实现一个多线程定时器
- Android 开发 Tip 12 -- 各种Drawable
- 小程序本地测试没有问题,苹果正常,安卓无法发送请求?
- 在Ubuntu 14.04 安装mysql
- 2017.5.12MFC画线
- 主干(trunk)、分支(branch )、标记(tag) 用法示例 + 图解
- 【Caffe】【场景分类】Places365安装、docker运行,以及调用本地caffe运行(Ubuntu14.04)
- HTTP状态码(HTTP Status Code),常见的error 404, error 504等的意思(转)
- TP5验证规则