c++ - 对象内的定时器

标签 c++ time

我想在我的对象中有一个计时器,这可以算作例如。 10 秒后它会 self 毁灭。

我想过这样的事情:

class A{
     int interval;
     void count(){
     /*clock starts putting value in interval*/
     if(interval < 10) delete this;
     };
};

最佳答案

  1. 您应该在程序的主线程中检查删除。

    #include <time.h>
    
    class A{
        time_t m_tCreateTime;
        int m_iInterval;
    
        A():
           m_tCreateTime(time()), 
           m_iInterval(10) {
        }
    
        void checkDelete() {
            /*clock starts putting value in interval*/
            if( time() - m_tCreateTime > m_iInterval ) 
                delete this;
        }
    };
    
  2. 如果您有一个多线程应用程序并且想要在他自己的线程中独立删除对象,您应该确保您不会在其他线程中使用该对象。

关于c++ - 对象内的定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42878530/

相关文章:

c++ - 可变数量的参数,没有宏或初始化列表的相同特定类型

c++ - 模板参数函数是否必须被视为潜在的 constexpr?

c++ - 为什么将 swap() 实现为非抛出

c++ - 将字符串写入文件不等于从中读取的字符串

C++ STL算法(列表排序)OpenMP/多线程实现

java - 如何输入日期和时间格式

Python 值错误 : unconverted data remains:

javascript - 我可以查看时间范围内的空闲时间吗

java - 特定格式的时间 Android Java

python - python的time.sleep()有多准确?