1. 程式人生 > >【Qt】Qt訊號與槽使用不當,使程式崩潰

【Qt】Qt訊號與槽使用不當,使程式崩潰

問題描述

跨執行緒使用Qt訊號和槽,訊號傳送時間間隔大於槽函式處理時間時,造成程式崩潰。

原因分析

跨執行緒使用Qt訊號和槽時,connect預設是QueuedConnection,佇列連線方式。
訊號傳遞給槽函式的引數,分配記憶體後放入佇列,如果槽函式處理不過來,就會造成佇列不停增長,消耗的記憶體不停增加,最後程式崩潰。

處理方法

處理方法各種各樣,原則是保證訊號傳送間隔不大於槽函式處理時間