等待线程结束(c++)

Wait for thread to end (C++)

本文关键字:c++ 结束 线程 等待      更新时间:2023-10-16

我请求你帮助我更好地理解一些关于c++线程的事情。我使用GNU GCC编译器的代码块,所以因为没有pthread.h (AFAIK),我使用process.h和_beginthread。我希望线程将执行的函数是可重用的。在该函数中有一个while(!finished)语句,所以当我希望线程结束时,我可以将finished设置为true。每次我点击一个按钮,我希望完成的变量将被设置为true,然后我想等到线程死亡,然后我想使用相同的函数启动另一个线程。那么,我怎样才能等待第一个线程的结束呢?对不起,如果这是有点复杂的理解,但我不能解释得更好。

我希望有人能帮助我,我是新的线程世界,我真的需要你的帮助。非常感谢。

你的帖子提到了WinAPI。Windows有自己的线程库,已经有几十年的历史了。它是可靠的,非常简单的使用。调用的示例:

HANDLE hThread = CreateThread(nullptr, 0, thread_entry_point, this, 0, &m_dwThreadId);

这将在任何Windows平台上工作。一旦你为Windows做了一些事情,这是值得考虑的。

我个人使用Windows线程和进程已经有几十年了。它们总是很好用,就像医生说的那样。我们现在的电脑可以很容易地启动几千个线程而没有任何问题。

除此之外,唯一真正可移植的解决方案是c++ 11线程。