关于线程内的局部变量的生命周期
例如在一个线程函数:
- C/C++ code
DWORD WINAPI TimerFunc( LPVOID lp){ While(1){ CAlarm cdu;}}请问 CAlarm类的对象生命周期,1.每次循环都创建一个cdu的对象还是只有一个?
2.什么时候析构,即生命周期问题。
3.线程函数的局部变量和普通函数的局部变量有什么区别呢?
[解决办法]
1.每次循环时都创建一个cdu对象
2.cdu的生命周期为while函数的大括号之间
3.线程的局部变量和普通函数的局部变量没什么区别
[解决办法]
[解决办法]
等同于下面的伪代码
- C/C++ code
DWORD WINAPI TimerFunc( LPVOID lp){ While(1){ CAlarm::CAlarm (); CAlarm::~CAlarm (); }}
[解决办法]
楼上都正确, cdu 每次循环都要被构造和析构
[解决办法]