读书人

请教:窗口过程其实是WinMain主线程创建

发布时间: 2012-03-13 11:21:11 作者: rapoo

请问:窗口过程其实是WinMain主线程创建的一条线程,这种理解是否正确,谢谢
初学SDK,想当然认为窗口过程其实是WinMain主线程创建的一条线程(是能接受消息的UI线程),这种理解是否正确???

希望达人指点~~~谢谢



[解决办法]
不一定是创建的线程, 直接由WinMain主线程处理消息也可以
[解决办法]
不正确,普通的SDK程序只有一个线程,按照你的理解一个普通的SDK至少有两个线程,但是实际上却只有一个,楼主对线程的概念理解有问题,对于Windows来说,线程是它的调度单位, 每个线程之间的执行顺序是随机的。
[解决办法]
那么这另一个WndProc是否可能被操作系统调用,从而2个WndProc并发执行??
==========================
不能,一个消息被处理时,如果时间太长,你根本就收不到另外的消息。
[解决办法]
但是我在WndProc函数里面再一次的显式调用了getMessage,应该可以从消息列队中取到消息啊
=====================
你只有一个线程,在处理一个用时较大的消息时,线程怎么去执行GetMessage呢?虽然WndProc是回调函数,由系统调用,但是毕竟还是在你的线程中的。
至于WINDOWS在内部不开线程调用WndProc,很好理解,线程之间的执行顺序是随机的,但是消息发送却是有顺序要求的。

读书人网 >VC/MFC

热点推荐