QP QMPool 裏面的 Q_REQUIRE_ID(200)出現的問題

調試的時候發現,把獲得的傳感器數據連續post給兩個活動對象之後會出現Assertion 200的問題,
找了很久才發現其實是對QP運行機制不熟悉導致的。
原因是當你將傳感器數據post給一個活動對象的時候(無論是自己還是其他),QP都會先進行處理,處理的過程中,你post的活動對象會將該事件的調用次數減1,完成之後其實該事件已經被釋放了。(你可能以爲還在)
然後,按照順序型的話,你接着post給其他對象,發現出錯了,這時候事件都不存在了,當然會出錯。
所以,解決的根本方法是放棄post機制,改用髮型-訂閱機制,就可以把一個事件給多個活動對象調用而不出錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章