【C#】Windows程序消息机制

一、Windows程序消息机制


 

1、Windows程序消息机制使用消息队列实现。

(1)、UI线程为主线程,用于管理整个窗体以及子控件的运行。

(2)、窗体上的所有消息是消息队列的主要来源。

(3)、PeekMessage、GetMessage用于查看应用程序消息队列,有消息时将队列中的消息派发出去。

GetMessage只有在消息队列中有消息时返回,队列中无消息GetMessage就会一直等,直至下一个消息出现时才返回。在等的这段时间,应用程序不能执行任何指令。即:当队列为空,GetMessage会被阻塞,使得while循环停止,防止某个程序把CPU耗尽。

无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它指令)。

2、ISynchronizeInvoke的属性InvokeRequired,用于判断windows窗体线程和当前的调用者线程是否是同一个。若是,则直接访问GUI控件;否则,使用 Invoke或者BeginInvoke访问UI控件。

Control类上Invoke和BeginInvoke通

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值