首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

程序退出时,怎么结束其它正在工作的线程

2012-02-21 
程序退出时,如何结束其它正在工作的线程 - C++ Builder / Windows SDK/API程序中有一处TForm,其中运行着一

程序退出时,如何结束其它正在工作的线程 - C++ Builder / Windows SDK/API
程序中有一处TForm,其中运行着一个线程进行其它工作。如果线程正在工作时退出时,对TForm窗体进行delete 操作时报错,后来加了结束线程的代码,但是虽然执行了线程结束函数,但是线程并没有真正返回或者结束。delete的时候还是出错。
都说要用WaitForSingleObject等事件返回WAIT_OBJECT_0的表示有信号,意思就是确认线程已经退出。结果就是一直没有返回WAIT_OBJECT_0的值。是不是那里写错了,还是思路有问题,下面是代码

C/C++ code
    try    {        if(TrendChooseForm != NULL)        {            if(TrendChooseForm->threndRun)            {                DWORD threadCode;                GetExitCodeThread(TrendChooseForm->ThreadHandle,&threadCode);                TerminateThread(TrendChooseForm->ThreadHandle,threadCode);                CloseHandle(TrendChooseForm->ThreadHandle);    //            while(true)    //            {//这里是死循环    //                if(WAIT_OBJECT_0 == WaitForSingleObject(TrendChooseForm->ThreadHandle,INFINITE))    //                break;    //            }            }            delete TrendChooseForm;            TrendChooseForm = NULL;        }    }catch(...)    {    }


[解决办法]
PostThreadMessage

热点排行