等待线程结束(C ++)

时间:2014-07-16 20:18:42

标签: c++ multithreading winapi

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

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

1 个答案:

答案 0 :(得分:2)

您的帖子提到了WinAPI。 Windows有自己的线程库,已存在数十年。它可靠且使用非常简单。电话示例:

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

这适用于任何Windows平台。一旦你为Windows做了一些事情,就值得考虑这个问题。

我个人使用Windows线程和进程数十年。他们总是工作得很好,就像文档说的那样。我们的日子PC可以毫无问题地轻松启动数千个线程。

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