轻松便携的乒乓通信

时间:2010-07-23 09:42:12

标签: c++

有没有办法在C ++中实现这样的通信?

用例:

我的主程序调用外部库的一个函数来处理列表。每次函数遍历列表时,它都会向调用者发送ping。后者使用收到的信号来跟踪前者的进度并发回一个布尔乒乓[true:好的,继续; false:用户想要中止该过程,现在返回]。

这比迭代主程序中的列表更有效,让函数只处理单个项目吗?或者整个想法只是废话?

3 个答案:

答案 0 :(得分:1)

听起来就像你在谈论回调功能一样。函数指针:

typedef bool (* Callback)(int mumble);

void processList(Callback notify) {
    while (processingList) {
        if (!notify(42)) break;
        // etc..
    }
}

答案 1 :(得分:0)

如果它是您正在处理的整个列表,为什么不使用函数调用的返回值来指示迭代何时完成。如果你想继续,再次调用该函数 - 如果没有,不要。

答案 2 :(得分:0)

也许您应该使用boost::signal。这至少与使用回调函数一样好。