我正在学习 C++,目前正在开发一个具有两个并发线程的程序。在 Visual Studio 的调试窗口中,它总是告诉我:
The thread x has exited with code 0 (0x0).
我想从我的线程返回一个退出代码,以便 Visual Studio 可以在控制台中显示退出代码,就像它对这些其他线程所做的那样。我已经测试过了,只是返回一个
int
从线程函数不会改变任何关于 Visual Studio 的输出。它仍然说有问题的线程以代码 0 退出。我也用谷歌搜索了它,但我找不到任何关于如何做的事情(至少不是
thread.h
)。如果不可能,这没什么大不了的,因为我总是可以从线程返回一个值并将其镜像到进程退出代码中,但是如果不可能,那么我看到的退出代码是什么在调试窗口中?
最佳答案
您需要使用特定于平台的线程而不是 std::thread
.
在 Windows 中,您将使用 CreateThread
.在 Visual Studio 中有 _beginthread
和 _beginthreadex
(仅使用后者,不推荐 _beginthead
),应该使用它来代替 CreateThread
,虽然目前没有太大区别。使用这些函数时,您只需从线程函数返回退出代码。或者,调用ExitThread
或 _endthreadex
.但这可能不安全,因为它不会执行任何后续代码,包括当前范围内对象的析构函数。
关于c++ - 是否可以从 C++ 中的线程返回退出代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65170364/