我有句柄问题,我无法解释。
情况: 申请/流程
CreateProcess
调用其EXE文件WaitForSingleObject
WaitForSingleObject
返回0后,我会使用GetExitCodeProcess
CloseHandle
除了返回CloseHandle
的{{1}}和false
返回6(= ERROR_INVALID_HANDLE)之外,每次调用都会返回成功。
根据this SO post,该过程保持有效,直到最后一个句柄关闭。这对我来说似乎不对。
我遇到的问题是根据ProcessExplorer / Taskmanager,每当我调用GetLastError
时,进程的句柄数增加2.随着时间的推移,手持量很高,整个Windows开始变得怪异并冻结...
ProcExp的底部为每个调用列出了一个非现有进程的句柄和一个非现有线程的句柄。
感谢您的意见。
PS:应用程序是使用对kernel32.dll的外部函数调用在PowerBuilder中编写的。简化代码如下所示:
CreateProcess