我想了解emit
.它是否重复数据?
如果我必须通过它传递一个 1MB 字节数组,那么内存中将存在多少该字节数组的副本?
最佳答案
这取决于您的信号如何连接到插槽。
如果使用默认连接,Qt::DirectConnection
,和两个 QObject
s 在同一个线程中,然后根据您定义参数的方式(按引用传递或按值传递),将参数视为以通常的方式调用函数。
如果您使用 Qt::QueuedConnection
连接或者你在线程之间连接,那么参数参数被复制并交给一个特殊的QEvent
并添加到接收线程的事件队列中。这将在接收线程有机会时进行处理。
关于qt - 发射复制它的参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18717816/