使用信令来同步线程 这些解释的技术性很强,所以需要举例来说明这些函数的用法,只要对之前例子中的代码稍加修改即可。在接下来的版本中,你将移去全局结束信号标志,并创建一个简单调用函数WaitForSingleObject()的主循环。 移去全局结束消息只是为了使程序变得简单些。不可否认,它仍然是通知线程结束的最好方法。但由于处于忙循环中,因此不是测试线程自身是否已结束的最好方法。 这也是使用WaitForSingleObject()调用的原因所在。该调用处于一个占用较少CPU时间的、虚拟的等待循环中。而且因为函数WaitForSingleObject()只能等待一个信号,即只能用于一个线程的结束,所以这个例子中只有一个从线程。 稍后,我们将重写程序。新程序将包含三个线程,并使用WaitForMultipleObjects()来等待它们全部结束。DEMO11_8.CPPEXE就使用了WaitForSingleObject()来结束单线程,并创建了另外一个线程,其代码如下: // DEMO11_8.CPP - A single threaded example of // WaitForSingleObject(...).
// INCLUDES //////////////////////////////////////////////////////////