对一段程序的疑惑
HANDLE eventhandle;
HANDLE ThreadHandle;
int main()
{
eventhangle=CreateEvent(NULL,true, false, NULL);
startinstance();
stopinstance();
}
void startinstance()
{
ThreadHandle = ::CreateThread(...);//开启一个线程;线程函数为FnThread
...
}
void stopinstance()
{
DWORD lpExitCode;
WaitForSingleObject(eventhandle,INFINITE);
GetExitCodeThread(ThreadHandle,&lpExitCode);
TerminateThread(ThreadHandle,lpExitCode);
}
DWORD WINAPI FnThread(LPVOID pParam)
{
while(1)
{
对一个文件操作;操作完后break;
}
SetEvent(eventhandle);
return 1;
}
困惑是当线程操作完的时候返回1,线程是否已经退出来了?
那-在stopinstance函数里的这些语句起什么作用呢?让线程自己结束不是更好吗?