我在程序中这样创建了线程
while(true)
{
Sleep(1000);
honkHandle=CreateThread(0, 0, (LPTHREAD_START_ROUTINE) TransImg, 0, 0, &threadID);
}
调用之后,总是无法退出程序,应该怎么做呢?
while(true)
{
Sleep(1000);
honkHandle=CreateThread(0, 0, (LPTHREAD_START_ROUTINE) TransImg, 0, 0, &threadID);
}
调用之后,总是无法退出程序,应该怎么做呢?
况且你的WHILE里面也没有BREAK哦
当然无法退出了
你可以设置一个变量或者事件
根据需要退出
你想退出的时候改一下那个条件变量
while(!m_bFlag)
{
......
}
然后对m_bFlag控制是否结束这可怕的死循环起线程
但是不能设置局部变量,应该设制一个全局变量,在主线程中你可以修改随时修改全局变量,然后在辅助线程中判定去全局变量的值来决定是否退出!
UINT MyThread(LPVOID pParam)
{
while(true)
{
if(::g_bOverThread == true)
{
return 1;
}
// handle
}
}//b.cpp
//if i want to end the thread
::g_bOverThread = true;请问:这样难道不行吗?
我上面写的是一个示例。
与ResumeThread来控制线程一时间运行一会儿:)
while(m_bLoop)
{
ResumeThread(m_hThread);
::Sleep(1000);
SuspendThread(m_hThread);
}