014 停止进程
终止进程
● 入口函数返回 最正确
最正确的方式,只有这样才能够保证主线程所有资源都已经被正确的清理
Main 函数返回时候 ,线程会被结束
程序内所有的资源都会被释放
● 入口函数返回时,为确保以下几件事情已经完成
○ 主线程所创建的任何对象都已经被正确的销毁
○ 操作系统会正确的释放线程的堆栈
○ 将进程的推出代码设置成入口函数的返回值
○ 递减内核对象的使用计数
● 进程中的一个线程调用ExitProcess
○ 不应调用此函数来结束进程,当函数被调用的时候会强制结束进程,并将退出代码设置为uExitCode 但此时线程并未正确结束,会导致线程无法正确被清理
1 VOID ExitProcess(UINT uExitCode);
BOOL TerminateProcess(
HANDLE hProcess,
DWORD uExitCode
);
● 另一个进程中的线程调用 TermitateProcess
○ 不应该用此函数来结束进程,次函数能够结束其他进程
● 进程中的所有线程都自然死亡
○ 很少碰到这种情况,理论存在