在我的前个岗位,当端起这样代码对GNU/Linux时,我关于mutexes和可能的方式实施等效功能谈论了使用WaitForSingleObject。 在这个岗位我在微软视窗中将描述使用与事件对象的这API并且建议张贴这样代码可能的方式对GNU/Linux或Unix。
首先,在事件对象的一些背景。 事件对象是另外一种Windows仁调度员对象。 从prespective的编制程序,事件对象是浓缩一个或更多仁调度员对象,并且同步语义学通过WaitForSingleObject和它的表兄弟是容易接近的同步对象。 在指定时间同步对象nonsignaled或发信号,即对象可能只在二个可能的状态之一中。
所有APIs WaitFor家庭包括在对象把柄的WaitForSingleobject直到一些指定的标准的等待或把柄遇见。 所有这些APIs的二个基本的标准是把柄它等待和一种超时价值对象的发信号的状态在。 因而叫这API等待的螺纹,指定的对象进入发信号的状态或指定的暂停到期了。 很少或没有CPU时间,当这样螺纹在等候状态时,使用。
在事件情况下, CreateEvent或OpenEvent退回把柄到事件对象。 当事件在发信号的状态时意味着那事件有能力发布等待这个特殊事件的一个或更多螺纹发信号。 当事件在nonsignaled状态它不会发布任何等待的螺纹。 最初事件的状态nonsignaled。 事件对象的状态明白地被设置对发信号由SetEvent或PulseEvent。 在事件对象状态被设置对发信号由仁而不是由应用情况下,事件对象也用于被重叠的操作例如读从插口。
事件也进来二个被重新设置的类型。 如果事件是手工重新设置事件,则等待那个事件,如果如此配置的所有WaitForSingleObjects回归。 换句话说手工重新设置事件可能由一个或更多触发行动WaitForSingleObject或它的表兄弟。 必须明白地重新设置手工重新设置事件对象的状态到nonsignaled由ResetEvent。
对于自动复位事件对象, WaitForSingleObject和它是联系被重新设置的

























