消息机制和使用调用函数方式有何区别

最关键的应用区别是,消息机制可能解决不同线程间的数据转输和控制,而不同的线程间不能直接调用函数。

消息机制是排队处理方式,windows存在一个系统队列,每当一个应用程序或一个线程发生一个事件或需要处理事务的时候并不是直接调用应用程序中的函数,而是把需求打包,向windows申请调用。
 
系统根据调度机制,从队列中取得一个消息包,拆箱,检查内容,根据其来源,将消息包重新打包,发送给该包指定的应用程序队列。应用程序回调函数循环监视应用程序队列,根据消息包参数处理不同事务,执行完后将控制权释放。
 
这样做的好处是将主动权让给操作系统,由系统调度分配执行时间,实现多任务执行。
 
只有窗口处理函数利用消息机制,一般情况都使用调用,除非你需要窗口处理指定的任务,那么可以在如何时候发送一个消息给自己窗口。
 
至于优缺点,消息机制针对操作系统的,一般任务都是直接调用,但是如果遇到占用CPU时间长的事务,就要将事务分割成片段,然后发送消息给系统,请求调用,这样不至于造成CPU假死。
原文地址:https://www.cnblogs.com/fag888/p/5789148.html