水木社区手机版
首页
|版面-Microsoft.NET技术(DotNET)|
新版wap站已上线
返回
1/1
|
转到
主题:能不能开两个线程分别开启事件循环?
楼主
|
hgoldfish
|
2021-11-24 19:20:43
|
只看此ID
一个 win32api 的程序,可以在两个线程里面,各自开启事件循环吗?
如果每个线程,都各自创建一个窗口。那么窗口事件会被发送给哪个线程?
事件循环用的是 GetMessage() 或者 MsgWaitForMultipleObjectsEx()
--
FROM 110.85.22.*
1楼
|
leadu
|
2021-11-26 11:52:51
|
只看此ID
可以
https://docs.microsoft.com/en-us/windows/win32/winmsg/about-messages-and-message-queues#message-routing
【 在 hgoldfish 的大作中提到: 】
: 一个 win32api 的程序,可以在两个线程里面,各自开启事件循环吗?
: 如果每个线程,都各自创建一个窗口。那么窗口事件会被发送给哪个线程?
: 事件循环用的是 GetMessage() 或者 MsgWaitForMultipleObjectsEx()
--
FROM 123.116.196.*
2楼
|
hgoldfish
|
2021-11-26 14:35:39
|
只看此ID
嗯。我看明白了,关键在于,这个窗口是在哪个线程里面创建的。
在创建的时候,windows 会纪录窗口关连的线程,后面发送消息,都会发送到这个线程的消息队列里面。
也就是说 windows gui 其实还挺先进的,可以搞多线程。别的系统的 GUI 库一般不行,只能存活在 UI 线程里面。不过,支持多线程,代价应该也不低吧。
【 在 leadu (leadu) 的大作中提到: 】
: 可以
:
https://docs.microsoft.com/en-us/windows/win32/winmsg/about-messages-and-message-queues#message-routing
--
FROM 140.224.34.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版