#include
#include
#include
using namespace std;
DWORD WINAPI ThreadPro(LPVOID lpParamter);
BOOL bRunning = TRUE;
int main()
{
HANDLE hThread = CreateThread(NULL,0,ThreadPro,0,0,NULL);
DWORD dwExitCode;
GetExitCodeThread(hThread,&dwExitCode);
printf("0x%08X\n",dwExitCode);
system("pause");
bRunning = FALSE;
system("pause");
GetExitCodeThread(hThread,&dwExitCode);
printf("0x%08X\n",dwExitCode);
system("pause");
CloseHandle(hThread);
return 0;
}
DWORD WINAPI ThreadPro(LPVOID lpParamter)
{
while(bRunning)
{
Sleep(1000);
}
return 4L;
}
这个代码给你参考,线程的创建和销毁过程还是很复杂的,想要深入一点了解的话,再问我吧!
查询MFC,SuspendThread()
CSDN上谈到
“直接SuspendThread函数不能保证在何处挂起,可能有线程未退出临界区导致死锁,不太安全。
创建一个Event,需要挂起线程时,WaitForSingleObject等待,继续的时候,SetEvent ”
这个方法更安全。
建一个全局变量保存返回值就行了,比如返回值为整型:
int nRtn;
UINT MyThread(LPVOID lpParam)
{
nRtn = function();
return nRtn;
}
int main()
{
AfxBeginThread(MyThread,null);
Sleep(nTime);//等待线程运行结束后对nRtn操作
...
}
反回是一个CWinTheadd类的指针 。。。你可以保留这个指针。。用来对线程进行操作。。如挂起。。启动。。。