任何人都可以告诉我是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