目前在网上查到两种方法:
(1) GetThreadExitCode(hTread,&m_hExitCode) 通过判断m_hExitCode 的值来判断线程是否在运行。 
问题是:如果在线程A即将结束的时候,但还未完全结束,线程B调用该函数检测到m_hExitCode 的值为STILL_ACTIVE,认为线程仍在运行,线程B分配一些任务让线程A执行,但当任务分配完成的时候线程A已经结束,线程A不能继续执行任务,这种情况怎么办?
 (2) WaitForSingleObject(hThread, dwMillseconds);
我是这么写的:
if(WaitForSingleObject(hSendThread, 100) == WAIT_TIMEOUT) //线程正在运行
{
     //给线程分配任务
}
else //线程已结束,新建一个线程
{
DWORD dwThreadId = 0;
hThread = CreateThread(NULL, 0,ThreadProc, 0, 0, &dwThreadId); 
     //给线程分配任务
}问题是:dwMillseconds 大小为多少比较合适,上面的100是我随便写的。向各位请教,谢谢!