各位大虾:
    在VC中终止工作线程一般都采用主线程和工作线程通信的方式,我现在想在线程外面也就是主线程中直接终止线程(就象linux下的kill),而不需要和线程内部通信,该怎么办?
    请各位帮忙,谢谢了!

解决方案 »

  1.   

    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );
      

  2.   

    TerminateThread()这个函数终止线程的手段非常强硬,不到万不得以不要用他!
    不过楼主的意思我想就是强制结束线程吧!
      

  3.   

    在一个线程中终止一个线程:
    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );
    结束本线程:
      ExitProcess
      

  4.   

    在一个线程中终止另一个线程:
    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );
    结束本线程:
      ExitProcess
      

  5.   

    /*******************************************************************************
    * 退出线程                                                                     *
    *******************************************************************************/
    DWORD m_ThreadID; //线程ID
    HANDLE         m_hThread; //线程句柄
    int ExitThread()
    {
    if (TerminateThread(m_hThread, 4))
    {
    DWORD dwExitCode =0;
        while(TRUE)
    {
    GetExitCodeThread(m_hThread, &dwExitCode);
    if (dwExitCode != STILL_ACTIVE)
    break;
    Sleep(10);
    }
    CloseHandle(m_hThread);     
    } return 0;
    }
      

  6.   

    BOOL TerminateProcess(
      HANDLE hProcess, // handle to the process
      UINT uExitCode   // exit code for the process
    );
      

  7.   

    TerminateProcess()的权利太大了,一般进程结束,系统会通知该进程的所有开启DLL结束,但使用TerminateProcess()系统就不会做这个工作,你就可以想到后果了。