Che*_*149 23 c++ qt thread-safety
假设我有一个信号更改连接到插槽通知.如果发出更改信号,则通知槽将开始执行.
现在如果发出第二个更改信号并且第一个通知槽未完成执行会发生什么?
第二个插槽是否与第一个插槽同时启动?如果是这样,Qt处理线程安全还是由程序员来处理它?
bor*_*sbn 35
它取决于您通过调用connect函数指定的连接类型.插槽同时启动的唯一方法是Qt::DirectConnection在线程中指定AND发出信号与插槽线程不同.如果省略连接类型,它将是Qt::AutoConnection.在这种情况下,如果你从一个线程发出一个信号,并在另一个线程中捕获它(例如在主GUI线程中) - Qt将把一个槽的调用放到消息队列中并按顺序进行所有调用.阅读本文以获取更多信息 - http://qt-project.org/doc/qt-4.8/threads-qobject.html#signals-and-slots-across-threads
| 归档时间: |
|
| 查看次数: |
14167 次 |
| 最近记录: |