2011-03-30 123 views
0

有沒有簡單的方法來等待boost :: signal被調用?我有一個信號在GUI中的每個繪製週期被調用,我想要一個不同的線程來調用一個函數,然後等待下一個繪製週期(當再次調用信號時,我知道函數的結果已經施加)。阻塞直到boost :: signal被調用

我認爲一種解決方案是將該信號與另一個函數建立連接,該函數將拋出一個自定義事件,並具有原始功能塊,直到獲取該事件。但是,這看起來並不是最優雅的解決方案。有沒有更好的辦法?

+0

我理解你的問題嗎?我並不完全確定你想阻止哪條線程。 – Nathanael 2011-03-30 18:04:17

回答

2

你需要爲此使用信號嗎?

線程A:引出線
線程B:其他線程做了一些工作,響應

線程B可以在條件方框。線程A將此條件設置爲true,這允許線程B執行一些工作。線程B將條件設置爲false,並在此條件下阻塞。

如果你真的需要使用boost :: signal,你可以將它連接到一個函數來設置這個條件爲真。