2013-06-03 29 views
2

我有這樣一個結構:類似的Objective-C在C++中的KVO

我有一個線程持續監視共享變量的狀態。 我想在C++中開發一個類似於Objective-C KVO的系統。在實踐中,我想通知thread02一個變量的狀態變化。

你稱這種模式是什麼?

完成此操作的最佳方式和最簡單方法是什麼?

我想我可以有,你傳遞一個函數指針thread01的addObserver的方法,但我想應該執行此功能的代碼(他什麼時候準備好)的thread02

你有建議?

一些例子?

+0

儘管你得到了一個完整的框架,但你可能想看看Qt和它的信號/插槽機制,它甚至可以在線程之間提供可觀察性。 –

回答

2

它被稱爲觀察者模式,最初描述在Design Patterns書中。 C++中的示例存在e.g. at CodeProject

爲了解決你的線程問題,你提供給被觀察對象的回調函數應該作爲一個信號,它應該喚醒另一個線程並告訴它開始工作。你可以使用這個信號的condition variable