Bất cứ ai có thể cho tôi biết là boost::signals
các vị trí được gọi đồng bộ hoặc không đồng bộ?Tăng cường :: các khe tín hiệu được gọi là đồng bộ hoặc không đồng bộ?
Ví dụ tôi có đoạn mã này:
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";
Cách hoạt động của chủ đề thực hiện? Việc thực hiện có chờ Hello()
và World()
thực thi và ngay sau đó "Foo"
được in hay không gọi chúng là không đồng bộ (in "Foo" và gọi Hello()
và World()
thực hiện theo thứ tự chưa được xác định)?
Tài liệu tại đây dường như chỉ định khác: http://www.boost.org/doc/libs/1_54_0/doc/html/signals2/tutorial.html#idp164798944 – sje397
Bạn nói đúng. Tôi đã bị thuyết phục rằng thứ tự không được chỉ định, nhưng phần tài liệu đó đã không thay đổi trong bốn hoặc năm lần phát hành cuối cùng. Tôi đã sửa lại câu trả lời của mình. –