014 停止进程

终止进程
  ● 入口函数返回 最正确
    最正确的方式,只有这样才能够保证主线程所有资源都已经被正确的清理
    Main 函数返回时候 ,线程会被结束
    程序内所有的资源都会被释放
    ● 入口函数返回时,为确保以下几件事情已经完成
      ○ 主线程所创建的任何对象都已经被正确的销毁
      ○ 操作系统会正确的释放线程的堆栈
      ○ 将进程的推出代码设置成入口函数的返回值
      ○ 递减内核对象的使用计数

  ● 进程中的一个线程调用ExitProcess
  ○ 不应调用此函数来结束进程,当函数被调用的时候会强制结束进程,并将退出代码设置为uExitCode 但此时线程并未正确结束,会导致线程无法正确被清理

1 VOID ExitProcess(UINT uExitCode);
BOOL TerminateProcess(
    HANDLE hProcess,
    DWORD uExitCode
);



  ● 另一个进程中的线程调用 TermitateProcess
    ○ 不应该用此函数来结束进程,次函数能够结束其他进程



  ● 进程中的所有线程都自然死亡
    ○ 很少碰到这种情况,理论存在

原文地址:https://www.cnblogs.com/sdk123/p/6953662.html