首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPP中的计时器同步问题?

CPP中的计时器同步问题?
EN

Stack Overflow用户
提问于 2012-06-19 22:46:38
回答 2查看 138关注 0票数 0

我有一个定时器class..This定时器将从我的代码块的不同部分启动。我有另一个类来管理这个定时器,即CTimerManager...This是一个静态类..So,我在这里面临的问题是当我取消初始化我的应用程序时,我所有的定时器需要获取destroyed...But,因为我已经启动了许多定时器当第一个定时器关闭时,内存变为空,并且如果任何其他定时器处于活动状态,并且它尝试访问内存异常发生(由于CTimerManager的单个实例)...任何人都知道如何面对这个问题

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-19 22:50:08

仅通过CTimerManager类的工厂方法创建timer实例。这些计时器本质上绑定到您的经理,并属于它,因此只有经理应该负责创建和删除它们。

在你的manager类的析构函数中,你应该停止所有的定时器并删除它们。这样,一旦管理器被销毁,任何计时器都不会保持活动状态。

票数 0
EN

Stack Overflow用户

发布于 2012-06-20 00:25:28

根据您的描述,您正在创建一个保存计时器的类,这些计时器在给定的时间后回调自身。当您销毁管理器时,计时器数据结构消失,然后计时器回调对象被销毁。

在调用CTimerManager的析构函数时,必须确保关闭所有计时器。

你是不是在使用线程,然后调用睡眠?在这种情况下,每个定时器需要周期性地检查标志,以查看定时器是否提前终止。然后在析构函数中设置一个标志,提前终止计时器并加入()所有计时器线程。

如果你正在调用一些操作系统计时器回调,它可能有一个取消计时器的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11103489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档