我有一个奇怪的行为:WaitForSingleObject似乎崩溃时,我从我的线程返回0,但如果我调用“ExitThread(0)”,那么它不。
void waitForThread(DWORD &threadId) { HANDLE hThread = OpenThread(SYNCHRONIZE,FALSE,threadId); if (hThread == NULL) return; WaitForSingleObject(hThread,INFINITE); // Crashes here (not even returning) CloseHandle(hThread); }
根据文件:
ExitThread是用C代码退出线程的首选方法。 但是,在C ++代码中,在调用任何析构函数或执行任何其他自动清理之前,线程将退出。 因此,在C ++代码中,你应该从你的线程函数中返回。
这对我来说没有意义。 我会认为在我的函数“返回0”与签名:
cabalconfiguration文件中的pathvariables
在Windows上的套接字 – 我错过了我的程序中的东西?
无法识别的选项:仅在Windows上使用ProcessBuilder进行-cp
有关通过Windows安装程序安装应用程序的问题
Windows上的Python 3.4中的Tkinter不会将内部剪贴板数据发布到退出时的Windows剪贴板上
DWORD WINAPI foo(LPVOID arg);
会没事的。 为了完整性,使用CreateThread创build线程,如下所示:
DWORD threadId; HANDLE pth = CreateThread(NULL,// Default security attributes 0,// Default stack size foo,// Thread name arg,// Argument to thread 0,// Default creation flag &threadId); // Returns thread ID
有谁知道为什么return语句会崩溃“WaitForSingleObject”吗? 我已经把WaitForSingleObject之前和之后的print语句,当线程存在时,我看到的行为是:“WaitForSingleObject之前”,“线程完成”,崩溃。 有没有人理解这种行为?
如何在开发机器上testing子域名? abc.localhost
在Windows上安装CasperJS:如何正确执行?
终止在C#中运行消息循环的工作线程
如何将jpeg图像的序列转换为video格式?
Windows vs Linux – math结果差异
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。