内核对象的唯一缺点是它们的性能,每一个应用内核对象的新函数,调用线程必须从用户模式切换到内核模式。 这种切换时非常耗时的,一个空的系统大概会占用200个CPU周期,但是造成内核对象比用户模式下的同步机制慢几个数量级的原因,是伴随调度新线程而来的刷新高速缓存以及错过高速缓存。
进程内核对象在创建的时候总是处于未触发状态。当进程终止的时候,操作系统自动使进程内核对象变成触发状态,当进程内核对象被触发后,它将永远保持这种状态。
WaitForSingleObject 和 WaitForMultipleObjects让线程处于等待状态知道指定的内核对象被触发为止。
等待成功引起的副作用: 所等待的对象的状态会发生变化。
可等待的计时器内核对象
会在某个指定的时间触发,或每隔一段时间触发一次。