首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-01-18 
关于线程内的局部变量的生命周期例如在一个线程函数:C/C++ codeDWORD WINAPI TimerFunc( LPVOID lp){While

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

例如在一个线程函数:

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.线程的局部变量和普通函数的局部变量没什么区别

热点排行