2011-11-01 80 views
10

我的應用程序可能受益於使用本地解決方案中的一個boost信號庫。信號與信號2

該應用程序是多線程的,但執行信號處理的部分是單線程的。

如果多線程不是問題,是否有什麼理由比Boost.Signal更喜歡Boost.Signals2?

+1

確保你考慮[libtscb](http://www.chaoticmind.net/~hcb/projects/libtscb /) - 其[性能比較](http://www.chaoticmind.net/~hcb/projects/libtscb/doc/index.html#performance)尤爲值得關注。 – ildjarn

+0

@ildjarn:不幸的是libtscb需要GCC。我不知道庫的其餘部分,但原子只是爲GCC實現的。一旦Visual Studio獲得C++ 11'std :: atomic',它可以被輕鬆移植。 –

+0

另一種選擇是使用當前正在審查的[Boost.Atomics](http://www.chaoticmind.net/~hcb/projects/boost.atomic/doc/index.html): - ] – ildjarn

回答

9

Boost.Signals現在已經過時,並Boost.Signals2應改爲使用(見v1.54 docs

+3

要引用該頁面上的重要註記(爲方便起見):「** Boost.Signals不再被主動維護,不要使用Boost.Signals進行新的開發(改爲使用Boost.Signals2)**如果您有現有的基於Boost.Signals的代碼,它將繼續工作,但考慮轉向Boost.Signal S2。 Signals2文檔中有一個移植指南。「 – Cornstalks

+0

說實話,大多數情況下,當你開始使用一個很好的功能時,你最終會希望在比首次需要的地方更多的地方使用它。 –

5

最初,如果所有的信號和插槽都在同一個線程中,boost.signals就好了。但是,它不再被維護 - 文檔建議在所有新代碼中使用signals2。

+4

signals2對信號有其他變化,所以無論如何都應該考慮 –