看板 C_and_CPP 關於我們 聯絡資訊
目前我的程式會trigger外部的一個儀器開始量測 然後開一個thread每隔十分鐘去偵測量測的進度 把儀器所產生的data讀進來作處理 目前我唯一可以知道量測是否結束的方式就是去偵測一個log檔 藉由log檔內的key得知 一個量測結束與下一個量測被trigger之間 不需要每隔十分鐘去偵測 目前的想法是讓偵測的thread sleep或是wait 可是sleep或是wait都是給秒數 但我不知道甚麼時候會有下一個量測 還是直接用terminate 下一個trigger時再開一個新的thread 其實我也不知道是不是這樣用 當初會想開thread只是不希望ui被block 使用者還是可以在ui上操作已經量出來的data 希望大家可以給些意見,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.243.151.173
legnaleurc:用 QTimer 是最簡單的方式 06/19 22:03
developers:不知道qtthread的lib裡有沒有提供condition variable? 06/21 10:07
developers:有的話,用一個do while loop,先用condition::wait() 06/21 10:08
developers:來block current thread,當trigger來的時候,從 06/21 10:09
developers:calling thread 去call condition::notify(),就可以 06/21 10:10
developers:unblock你的working thread,然後執行你要做的事; 之後 06/21 10:11
developers:再回到do while的開頭,然後condition::wait(),等下一 06/21 10:12
developers:個trigger 06/21 10:12
legnaleurc:用 QEventLoop 即可達成上述的效果 06/21 15:47