首页| 论坛| 消息
主题:事件循环是什么?
回帖:介农酥:exec()后面的代码无法执行,前面的代码造成的任何结果都可以运行,比如connect,计时器,事件对吧,那其他线程给他发信号他会处理吗,应该会,对吧。那这个QEventLoop本地循环呢,这个本地循环应该只响应本地的(从线程开始到loop.exec())的事件吧,那线程的exec()只响应线程的 .. (2019-08-16 13:08) 
在这里如果我们只考虑Qt的事件循环,那么可以继续描述。
事件循环相当于是一个阻塞的操作,所以不管在哪个线程里面启动起来就没办法再执行后面的指令。
Qt的事件循环就是用QEventLoop来做的,如果你在事件循环里面再嵌套一个事件循环,肯定也是不能再执行后面的指令,但是你嵌套的那个事件循环是可以处理所有的事件的(包括外层的循环里的事件,exec有个参数指定处理事件类型)
然后不同的线程里面都可以启动一个事件循环,另外跨线程的信号传递,一般情况下都是封装成一个回调函数的事件,派发到指定的线程事件循环里面执行,所以是线程安全的。
每个线程里面的事件循环都是独立的,但是同一个线程里面的多个事件循环应该是共享同一个事件队列的。
下一楼›:与windows 程序设计里面的事件循环是类似的概念。
虽然我没有看过qt源码,但是如果你用sdk开 ..
‹上一楼:笑颜:Qt的事件循环是什么? 可以这样给你解释。
假设我们写个简单的main函数,如果没有任何 ..

查看全部回帖(11)
«返回主帖