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

程序退出时,如何结束其它正在工作的线程 - 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