windows - 进程终止后是否需要关闭线程句柄?
问题描述
在创建进程并立即终止它之后,是否需要CloseHandle
在结构中返回线程句柄PROCESS_INFORMATION
?
STARTUPINFO si;
GetStartupInfo(&si);
PROCESS_INFORMATION pi;
CreateProcess(0, cmdLine, 0, 0, FALSE, CREATE_SUSPENDED, 0, 0, &si, &pi);
TerminateProcess(pi.hProcess, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread); // Is this necessary?
解决方案
PROCESS_INFORMATION 中的句柄在不再需要时必须使用 CloseHandle 关闭。
包含有关新创建的进程及其主线程的信息。它与 CreateProcess、CreateProcessAsUser、CreateProcessWithLogonW 或 CreateProcessWithTokenW 函数一起使用。
[...]
如果函数成功,请务必在完成处理后调用 CloseHandle 函数来关闭 hProcess 和 hThread 句柄。
推荐阅读
- r - 在没有管理员权限的情况下在 RMarkdown 主体中使用 Google 字体
- clojure - Clojure / Clojurescript 中的客户端/服务器反应同步
- java - 如何正确处理 Spring Security 中的预认证失败?
- python - Boto3 Cloudformation 错误:模板格式错误:不支持的结构
- asp.net - 在异常处理程序中看不到自定义响应
- python - 我怎样才能结束这个 BST 循环?
- multithreading - 从(并行)线程打印到终端(Common Lisp)
- python - 在一行中获取两个输入,即使用户只输入一个输入,如何让代码运行?
- angular - 角材料日期选择器 - 产品中的空白弹出窗口
- azure - Azure Dev Spaces - 没有更多空间可用于文件同步