我有一个定时器class..This定时器将从我的代码块的不同部分启动。我有另一个类来管理这个定时器,即CTimerManager...This是一个静态类..So,我在这里面临的问题是当我取消初始化我的应用程序时,我所有的定时器需要获取destroyed...But,因为我已经启动了许多定时器当第一个定时器关闭时,内存变为空,并且如果任何其他定时器处于活动状态,并且它尝试访问内存异常发生(由于CTimerManager的单个实例)...任何人都知道如何面对这个问题
发布于 2012-06-19 22:50:08
仅通过CTimerManager类的工厂方法创建timer实例。这些计时器本质上绑定到您的经理,并属于它,因此只有经理应该负责创建和删除它们。
在你的manager类的析构函数中,你应该停止所有的定时器并删除它们。这样,一旦管理器被销毁,任何计时器都不会保持活动状态。
发布于 2012-06-20 00:25:28
根据您的描述,您正在创建一个保存计时器的类,这些计时器在给定的时间后回调自身。当您销毁管理器时,计时器数据结构消失,然后计时器回调对象被销毁。
在调用CTimerManager的析构函数时,必须确保关闭所有计时器。
你是不是在使用线程,然后调用睡眠?在这种情况下,每个定时器需要周期性地检查标志,以查看定时器是否提前终止。然后在析构函数中设置一个标志,提前终止计时器并加入()所有计时器线程。
如果你正在调用一些操作系统计时器回调,它可能有一个取消计时器的函数。
https://stackoverflow.com/questions/11103489
复制相似问题