在多線程傳遞參數時,遇到了信號槽跨線程參數傳輸錯誤問題,總結如下:
在同一個線程中
當信號和槽都在同一個線程中時,值傳遞參數和引用傳遞參數有區別:
值傳遞會復制對象;
引用傳遞不會復制對象;
不在同一個線程中
當信號和槽不在同一個線程中時,分兩種情況。
1、connect時使用AutoConnection(跨線程默認是QueuedConnection):值傳遞參數和引用傳遞參數沒有區別,都會復制對象;(測試時,打印傳遞前后的地址不同)
2、connect時使用DirectConnection,測試結果和在同一線程中的結果相同
參考:
https://blog.csdn.net/u010168781/article/details/82108522
https://blog.csdn.net/life_is_too_hard/article/details/52089723