社区
进程/线程/DLL
帖子详情
定时器能不能实现多线程
mzmbird
2012-10-21 03:47:56
程序中必须使用定时器,但是在处理数据时主界面会很卡。
请问有没用方法能达到多线程的效果。
...全文
209
3
打赏
收藏
定时器能不能实现多线程
程序中必须使用定时器,但是在处理数据时主界面会很卡。 请问有没用方法能达到多线程的效果。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
I_ask_who
2012-10-21
打赏
举报
回复
界面的话比较麻烦,数据处理还好说。
如果你不是界面重绘而仅仅是数据处理,开个线程在里面用Sleep或者WaitObject,共享数据加锁,不过时间不准。还有使用GetTickCount,精度在10ms左右,然后隔20ms Sleep一次,看你的定时时间是否是其整数。
hdg3707
2012-10-21
打赏
举报
回复
建立一个多线程,专门处理数据,定时器函数功能只加个处理标志,这个处理标志是个工程全局变量(不是类的全局变量),具体这么做:
在CPP文件里开始处:
BOOL m_Ok;//等TURE时线程处理数据,等于FALSE停止处理数据
定时器函数:
m_Ok=TRUE;
线程函数:
while(1)
{
if(m_Ok)
{
处理数据
m_Ok=FALSE;
}
}
傻X
2012-10-21
打赏
举报
回复
SetTimer定时器的技术是中断技术。
硬件计时。然后出发WM_TIME消息,调用回调。走的还是主线程的消息。
结论:数据量小的时候,由于现在计算机的性能比较好,效果和多线程无异。
但是处理数据多,时间长了就不行了。还是会阻塞主界面的。
C#
多线程
实现
定时器
C#
多线程
实现
定时器
MFC中利用
多线程
实现
定时器
MFC中利用
多线程
实现
定时器
,对于学习
多线程
和 ontimer的同学有用
线程
实现
定时器
的多种功能
封装的
定时器
类,采用线程
实现
,
实现
定时、相对定时、周期定时执行的功能
C# .net
定时器
,
多线程
实现
定时器
NULL 博文链接:https://heisetoufa.iteye.com/blog/1684467
linux下多
定时器
+线程池的
实现
(经典)
// //linux只允许单进程拥有一个
定时器
,因此在linux下的单进程中要使用多个
定时器
,则需要自己维护管理 // //这个
实现
允许用户使用多个自定义的
定时器
,每个自定义的
定时器
将周期地被触发直到其被删除。
实现
的主要思路是: // // i)首先在初始化多
定时器
(init_mul_timer)时利用setitimer注册一个基本的时间单位(如1s)的定时事件; // // ii)用户需要set_a_timer注册自定义
定时器
时,在timer_manage管理结构中记录这个
定时器
的回调函数和定时周期等参数; // // iii)当基本的时间单位到期后(如SIGALRM信号到达时),遍历整个timer_manage,如果有自定义
定时器
的超时时间到了, //就把该回调函数添加到线程池的任务中,让线程池里面的线程去执行,然后将自定义
定时器
的超时时间置为最初值0; // // iv)用户通过del_a_timer来删除某个
定时器
,通 过destroy_mul_timer来删除整个多
定时器
。
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章