在一个线程中打开了文件file1执行一些操作,然后主线程在一段时期内超时,则利用CreateThread返回的HANDLE来TerminateThread,虽然可以操作成功,但之前打开的file1就无法再次打开了。类似地如何解决线程被意外终止时进行“善后”工作?
            DWORD   dwTimeout = 1000 * 30; //超时时间为:300s
   if (WaitForSingleObject ( hThread, dwTimeout ) == WAIT_TIMEOUT )
   {
   TerminateThread(hThread,1);
   try
   {
               if (m_File.m_hFile!=(UINT)CFile::hFileNull)       
                               m_File.Close();
   }
   catch (CFileException* pEx)
   {
             pEx->Delete();
   }
   hThread = NULL;                           
   }
现在的问题是即使m_File.m_hFile==(UINT)CFile::hFileNull,不能把文件正常关闭啊