VC SDK 下,用createthread()创建了一个线程.
我的问题:
1.当线程从上到下执行完毕后,线程中定义的变量等就被系统释放了呢?
还是要释放线程的句柄后其中的变量才被释放?
2.如果使用createthread()创建线程,该使用哪"两个"(我记得是两个)API函数才能完全释放线程资源?
以前看过,忘记啦.现在写程序要用到,请帮忙:)
线程函数和普通函数没有什么区别呀?如果线程函数退出了,函数体声明的局部变量不就被"释放"了吗!我想你是不是没有关闭句柄呢?
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)urThreadFunc,NULL,(DWORD)0,NULL);
do
{
GetExitCodeThread(hThread,&dwExitCode);
}
while(dwExitCode);
CloseHandle( hThread ); //important
按照侯sir深入浅出mfc所说,一是线程函数执行完后,系统调用ExitThread进行善后处理,二是进程结束导致线程结束或者别的线程调用terminatethread终结掉他
有内存泄漏的是_beginthread函数。用CreateThread没问题。
你的问题应该是,如何确保主线程最后退出。纯粹是设计问题,如果你举出具体的应用实例,我想会更有帮助