求标准 可靠 迅速的销毁线程的方法程序启动时,建立线程,退出时,要销毁线程.
线程是像视频预览线程这样的,不退出就永远运行的线程.
1. TerminateThread
2. ........ 

解决方案 »

  1.   

    安全可靠的,就是线程自己return,
    别的就TerminateThread
      

  2.   

    TerminateThread 能不用就不用,有隐患
      

  3.   

    直接 CloseHandle(线程句柄); ,能不能关闭线程?
      

  4.   

    你最好在线程里设置一个BOOL变量,当变量为TRUE时,return
      

  5.   

    WaitForSingleObject()等待线程退出
      

  6.   

    busy loop 
    GetExitCodeThreadWaitForSingleObject
    ExitThread
      

  7.   

    根据楼主的描述,当你的进程退出时,它创建的任何线程都会退出,不存在一直执行的状况。
    如果楼主是希望优雅地控制线程的退出,那么请参考如下。推荐的方式:
        1.在你的进程创建线程之前,请先创建一个Event对象(Using CreateEvent);
        2.创建你的线程;
        3.每一个创建好的线程都去监测上述事件对象的状态(可以调用WaitForSingleObject函数,并将等待超时值设定为0);
        4.如果你的主线程希望那些线程退出时,请直接SetEvent上述事件对象;
        5.当监测到事件对象处于有信号状态时(也就是WaitSingleObject函数返回WAIT_OBJECT_0时),上述线程退出。
      

  8.   

    给你个思路,主要还得靠你实践:
    1:挂起目标线程 SuspendThread(hThread)
    2:获取目标线程的CPU上下文信息
      API:GetThreadContext(hThread,&THREADCONTEXT)
    3:修改2中返回的THREADCONTEXT结构中指令地址一项,把
      它改成自己写的函数地址 _safe_exit:
       void _safe_exit()
         {
           __endthreadex(0);
         }
    4:唤醒目标线程 ResumeThread(hThread)
    5:等待目标线程结束后关闭线程句炳
      WairForSingleObject(hThread,INFINITE)
       CloseHandle(hThread)LZ按照我的思路试试吧,应该可以的,但要注意,
    如果线程中存在UI消息队列,则__endthreadex(0);
    有可能会阻塞。
      

  9.   

    继续 忘了一条重要的步骤 3:修改2中返回的THREADCONTEXT结构中指令地址一项,把
       它改成自己写的函数地址 _safe_exit:
       void _safe_exit()
        {
         __endthreadex(0);
        }
       
       然后调用 SetThreadContext(hThread,&THREADCONTEXT)