请教是不是这样就可以结束线程了
请问是不是这样就可以结束线程了?FormCreate(){//创建连接线程g_Thread_Handle (HANDLE)_beginthreadex(
请问是不是这样就可以结束线程了?
FormCreate()
{
//创建连接线程
g_Thread_Handle = (HANDLE)_beginthreadex( 0, 0, ConnectionProc, Handle, 0, &g_ThreadID );
}
FormClose()
{
WaitForSingleObject(g_Thread_Handle, INFINITE); //是不是这样就可以结束线程了?
CloseHandle(g_Thread_Handle); //是不是这样就可以结束线程了?
g_Thread_Handle = NULL;
}
[解决办法]WaitForSingleObject(g_Thread_Handle, INFINITE); //这是等待该线程结束
CloseHandle(g_Thread_Handle); //这是关闭句柄
[解决办法]BOOL TerminateThread(
HANDLE hThread,
DWORD dwExitCode
);
[解决办法]while(m_bRuning)
{
//线程工作
}
m_bRuning = false;
这几句什么意思?
[解决办法]思路没错,不过我觉得你在关闭线程这里是不是也应该写在一个CLOSE函数中,因为在你没用线程
的话,这段代码没必要执行,所以在线程工作函数中最后加上调用这个CLOSE函数来关闭线程,要不
在你没有启动线程就来关闭线程是不是会报错的~~~试试有错误吗??
[解决办法]http://www.vczx.com/tutorial/mfc/mfc8.php
[解决办法]FormClose()
{
WaitForSingleObject(g_Thread_Handle, INFINITE); //你这个是等待线程结束,不是结束线程
CloseHandle(g_Thread_Handle); //句柄不等于线程本身,它只是一个标识,调用它只会降低句柄的引用计数,并不代表线程结束
g_Thread_Handle = NULL;
}
[解决办法]线程结束是指,线程从线程函数自然返回,或者是另一个进程的一个线程调用TerminateThread,导致线程被强制结束
[解决办法]侯杰有本翻译的书叫
win32 多线程
你还是看看吧