我绞尽脑汁想弄清楚串行端口何时完成关闭,以便我可以重新打开它。事实证明,CloseHandle()在端口实际解锁之前返回。我正在使用CreateFile(FILE_FLAG_OVERLAPPED)打开一个串行端口,使用CreateIoCompletionPort()将其与CompletionPort相关联,使用ReadFile()、WriteFile()并使用CloseHandle()关闭它。我注意到,如果我足够快地关闭并重新打开串行端口,我会从CreateFile()返回一个ERROR_ACCESS_DENIED。尽管我正在等待CloseHandle()返回,然后等待与该句柄关联的所
我已经通过“CreateThread”函数创建了一个线程。在此线程中,我有一个“while(true)”循环(读取输入)。现在,当我想关闭线程时,我使用“CloseHandle”函数。这是正确的做法吗?或者我应该退出“while(true)”循环然后使用“CloseHandle”函数?谢谢 最佳答案 CloseHandle()不会销毁、终止或暂停线程,它只会销毁句柄本身(因此您没有句柄来终止线程或等待它)。线程继续正常工作(我在很多情况下都使用过它),停止它的唯一方法是退出线程函数(ThreadProc()),或者终止它。
我需要从上下文菜单启动一个单独的进程/应用程序;我正在使用函数launch_program来执行此操作。一旦创建的进程终止,我不关心退出代码,我只希望能够启动它。我的问题是:如果变量startup_info和proc_info通过引用传递给CreateProcess我可以使用CloseHandle如果我只是要从函数返回到我的主线程,就可以使用它们吗?voidlaunch_program(){STARTUPINFOstartup_info;PROCESS_INFORMATIONproc_info;LPCSTRlocation="C:\\ProgramFiles(x86)\\Interne