windows下,事件hEvent对象,和消息,谁的速度快?

时间:2021-04-25 00:18:31
如题:
    方式一:采用 CreateEvent 、 WaitForSingleObject 的形式来等待某一个事件的发生,来触发另一系列的操作。

    方式二:采用SendMessage  PostMessage 的方式,来触发另一系列的操作


那种方式的效率更高?

11 个解决方案

#1


真不太清楚。。。。

#2


event更快一些

#3


这两个的差别对你的运行速度影响可以忽略

#4


引用 2 楼 majia2011 的回复:
event更快一些

为什么?

#5


一个是挂起同步等,一个是异步消息通知,完全是两码事。

#6


event +1

#7


profiler

#8


引用 5 楼 qq120848369 的回复:
一个是挂起同步等,一个是异步消息通知,完全是两码事。

那,谁更快呢?

#9


事件更快,因为消息,就是通过事件实现的,Windows 底层只有事件,没有消息。
消息,只不过利用事件,实现的一套API 而已。

#10


事件对象更快

#11


当然是事件啦 事件是挂载在线程上,内核态切换到用户态的时候,会先查看事件标志位
而消息是由消息循环驱动分发的,同一时间片要处理很多其他不同的消息

不过我推荐用消息,因为即便你利用事件,你到最后也得自己封装一套消息机制。至于速度,大多数时候你不用去考虑它的

#1


真不太清楚。。。。

#2


event更快一些

#3


这两个的差别对你的运行速度影响可以忽略

#4


引用 2 楼 majia2011 的回复:
event更快一些

为什么?

#5


一个是挂起同步等,一个是异步消息通知,完全是两码事。

#6


event +1

#7


profiler

#8


引用 5 楼 qq120848369 的回复:
一个是挂起同步等,一个是异步消息通知,完全是两码事。

那,谁更快呢?

#9


事件更快,因为消息,就是通过事件实现的,Windows 底层只有事件,没有消息。
消息,只不过利用事件,实现的一套API 而已。

#10


事件对象更快

#11


当然是事件啦 事件是挂载在线程上,内核态切换到用户态的时候,会先查看事件标志位
而消息是由消息循环驱动分发的,同一时间片要处理很多其他不同的消息

不过我推荐用消息,因为即便你利用事件,你到最后也得自己封装一套消息机制。至于速度,大多数时候你不用去考虑它的