读书人

关于线程内的局部变量的生命周期解决方

发布时间: 2012-01-18 00:23:26 作者: rapoo

关于线程内的局部变量的生命周期

例如在一个线程函数:

C/C++ code
DWORD WINAPI TimerFunc( LPVOID lp){  While(1){   CAlarm cdu;}}

请问 CAlarm类的对象生命周期,1.每次循环都创建一个cdu的对象还是只有一个?
2.什么时候析构,即生命周期问题。
3.线程函数的局部变量和普通函数的局部变量有什么区别呢?

[解决办法]
1.每次循环时都创建一个cdu对象
2.cdu的生命周期为while函数的大括号之间
3.线程的局部变量和普通函数的局部变量没什么区别
[解决办法]
探讨
1.每次循环时都创建一个cdu对象
2.cdu的生命周期为while函数的大括号之间
3.线程的局部变量和普通函数的局部变量没什么区别

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

读书人网 >VC/MFC

热点推荐