任何人都可以告訴我是boost::signals
同步或異步調用的插槽嗎?boost :: signals slots是同步調用還是異步調用?
比如我有這段代碼:
struct Hello
{
void operator()() const
{
std::cout << "Hello ";
}
};
struct World
{
void operator()() const
{
std::cout << " world!" << std::endl;
}
};
boost::signal<void()> sig;
sig.connect(Hello());
sig.connect(World());
sig();
cout << "Foo";
如何執行線程的工作?執行是否等待Hello()
和World()
執行,並且之後立即打印"Foo"
或者它是否異步調用它們(打印「Foo」並調用Hello()
和World()
以未定義的順序執行)?
Docs在這裏似乎是另有說明:http://www.boost.org/doc/libs/1_54_0/doc/html/signals2/tutorial.html#idp164798944 – sje397 2013-08-26 03:44:32
你說得對。我確信訂單沒有具體說明,但是在最近的四個或五個版本中,這部分文檔沒有改變。我糾正了我的答案。 – 2013-08-26 07:49:57