是否可以在C++中从线程返回退出代码



我正在学习C++,目前正在开发一个具有两个并发线程的程序。在Visual Studio的调试窗口中,它总是告诉我:

线程x已退出,代码为0(0x0(。

我想从我的线程返回一个退出代码,这样visualstudio就可以像对待其他线程一样在控制台中显示退出代码。我已经测试过了,仅仅从线程函数返回一个int并不会改变VisualStudio的输出。它仍然表示有问题的线程退出,代码为0。

我也在谷歌上搜索过,但我找不到任何关于如何做到这一点的信息(至少thread.h没有(。如果不可能,那也没什么大不了的,因为我总是可以从线程返回一个值,并在进程出口代码中镜像它,但如果不可能的话,那么我在调试窗口中看到的出口代码是什么?

您需要使用特定于平台的线程,而不是std::thread

在Windows中,您将使用CreateThread。在Visual Studio中有_beginthread_beginthreadex(仅使用后者,不建议使用_beginthead(,应该使用它们来代替CreateThread,尽管目前没有太大区别。使用这些函数时,只需从线程函数返回退出代码。或者,呼叫ExitThread_endthreadex。但这可能不安全,因为它不会执行任何后续代码,包括当前范围内对象的析构函数。

最新更新