gpt4 book ai didi

c++ - 如何使用 libev 在 C++ 中创建异步方法

转载 作者:行者123 更新时间:2023-11-28 07:43:27 25 4
gpt4 key购买 nike

我正在尝试使用 libev 在 C++ 中创建一个异步方法。如果需要,我可以将回调方法作为参数传递。

例如

test();
printf("After test() method\n");

test() 是一个异步方法,因此下一个printf() 语句应该在test() 完成执行之前执行.

我尝试使用 libev 作为这个简单的例子:

void testCallback(struct ev_loop *loop, struct ev_io  *watcher, int revents)
{
sleep(5);
ev_io_stop(loop, watcher);
}

int test()
{
struct ev_loop *loop = ev_default_loop(0);
ev_io watch;

ev_io_init(&watch, testCallback, 0, EV_READ);
ev_io_start(loop, &watch);

ev_run(loop, 0);

return 0;
}

int main() {
test();
printf("After test() method");
return 0;
}

在此示例中,printf 在事件循环停止后执行。使用 libev 可以实现这种功能吗?我用谷歌搜索,但没有找到这种需求的例子。

最佳答案

从代码来看,printf 应该在循环停止后执行。测试不是异步的,而是 testCallback 是异步的。您可能误解了其中的逻辑。

关于c++ - 如何使用 libev 在 C++ 中创建异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15360476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com