简易便携的乒乓球通讯 < C++ > 中有没有实现这种通信的方法?

简易便携的乒乓球通讯 < C++ > 中有没有实现这种通信的方法?,c++,C++,用例: 我的主程序调用外部库的函数来处理列表。每次函数遍历列表时,它都会向调用方发送一个ping。后者使用接收到的信号跟踪前者的进度,并发回一个布尔pong[真:好,继续;假:用户想要中止进程,现在返回] 这会比在主程序中遍历列表并让函数只处理单个项更有效吗?或者整个想法都是废话?如果它是您正在处理的整个列表,为什么不使用函数调用的返回值来指示迭代何时完成呢。如果要继续,请再次调用该函数-如果不想,请不要调用。听起来像是在谈论回调函数。函数指针: typedef bool (* Callback

用例:

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


这会比在主程序中遍历列表并让函数只处理单个项更有效吗?或者整个想法都是废话?

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

听起来像是在谈论回调函数。函数指针:

typedef bool (* Callback)(int mumble);

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

也许你应该使用。这至少和使用回调函数一样好。

您是真的在谈论ipc,还是在谈论函数调用?我是在谈论为函数添加交互性。我认为这应该和IPC有关,但绝对不是IPC。IPC意味着几个交流过程。简单地说,我的想法是愚蠢的。也许,我对回调函数的概念是陌生的。你的意思是我可以在主程序中包含一个回调函数,在我的例子中,它更新进度条并检查进程是否必须中止,并使用回调函数作为参数之一调用库函数?在处理列表时,函数调用传递的回调函数,然后按照指示操作,对吗?还有我的第二个问题:这会比在主程序中迭代列表,让函数只处理单个项更有效吗?这是正确的。我看不到明显的效率角度,只是更干净的代码。我更喜欢标准的C++工具。