求助:怎样结束一个线程
#include <windows.h>#include <process.h>
#include <stdio.h>
UINT WINAPI MyThread(PVOID Param)
{
while(1)
{
printf("HelloWorld\n");
Sleep(1000);
}
return 0;
}
int main(void)
{
HANDLE ThreadH;
UINT ID;
ThreadH = (HANDLE)_beginthreadex(NULL, 0, MyThread, NULL, 0, &ID);
if (WaitForSingleObject(ThreadH, 5000) == WAIT_TIMEOUT)
{
printf("time out, to kill thread\n");
CloseHandle(ThreadH); // 这样结束线程,这样对吗,貌似不起作用
}
while(1);
return 0;
}
如上面程序所示,我想在5秒过后结束线程MyThread,但是得不到想要的结果。
注意:我是要真正的结束线程,而不是增加一些变量去控制条件达到不打印HelloWorld的目的,那不是我想要的结束线程。
求教。