定时器内的对象

时间:2017-03-18 18:53:01

标签: c++ time

我希望在我的对象中有计时器,这可以算作例如。 10秒后,它会破坏自己。

我想到了这样的事情:

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

1 个答案:

答案 0 :(得分:1)

  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. 如果您有多线程应用程序,并希望独立于自己的线程中删除对象,则应确保不会在其他线程中使用此对象。

相关问题