回帖:与windows 程序设计里面的事件循环是类似的概念。
虽然我没有看过qt源码,但是如果你用sdk开发过windows程序,需要自己写一个windows的事件循环机制。进入事件循环后,实际上是在等待用户的操作。
比如用户点击退出,会触发windows退出事件的操作。
点击按钮,会触发按钮点击事件等等。
QT中每个线程都有自己的事件循环。
所以“主线程循环是否就是响应主线程及其子线程所有的事件,这样理解对吗?” 这个是不完全对的。
主线程响应自己的事件。
子线程也有自己的事件循环。
垮线程发信号消息,就是把发送的线程,把消息丢到对方线程的消息队列上去。接收线程的事件循环会从自己的消息队列上取消息,进而去执行。
如果线程阻塞,那么无法进入事件循环,也就无法响应一切事件。如果主线程被阻塞,给人感觉就是界面卡死不响应。
如果你有过windows sdk 编程,有些地方知识都是类似的,虽然不全部完全相同。