假设有两个线程,一个线程等待事件,一个线程触发事件。
使用CEvent类,我们可以在WaitForSingleObject执行前触发事件, WaitForSingleObject会立即返回。
而使用条件变量的notify_one在wait执行前触发事件,当执行到wait时会阻塞。
主要区别在于对状态的保存,CEvent会保存状态,条件变量不会,但可以通过对条件变量的再封装,使条件变量拥有类似CEvent的状态保存功能。
假设有两个线程,一个线程等待事件,一个线程触发事件。
使用CEvent类,我们可以在WaitForSingleObject执行前触发事件, WaitForSingleObject会立即返回。
而使用条件变量的notify_one在wait执行前触发事件,当执行到wait时会阻塞。
主要区别在于对状态的保存,CEvent会保存状态,条件变量不会,但可以通过对条件变量的再封装,使条件变量拥有类似CEvent的状态保存功能。