首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中从另一个协程调用协程?

如何在C++中从另一个协程调用协程?
EN

Stack Overflow用户
提问于 2019-12-19 07:31:51
回答 1查看 474关注 0票数 1

我有一个很长的协程,我想把它分成更小的协程。就像常规函数一样,让代码更清晰。它的行为应该像只有一个大的协程,所有较小的协程都是连续发生的。

我使用的是#include <experimental/coroutine>

我一直在尝试这样的东西:

代码语言:javascript
复制
resumable part1_coroutine()
{
    cout << "1" << endl;
    co_await suspend_always();
}

resumable part2_coroutine()
{
    cout << "2" << endl;
    co_await suspend_always();
}

resumable main_coroutine()
{
    cout << "main" << endl;
    part1_coroutine();
    part2_coroutine();
    co_await suspend_always();
}

但似乎发生的情况是,part1_coroutine()part2_coroutine()根本不会被执行。

EN

回答 1

Stack Overflow用户

发布于 2019-12-19 16:08:25

这就是co_await foo()所做的-给另一个协程foo一个取得进展的机会,根据需要暂停当前的协程以等待它完成。如果你只是调用一个协程,而不是等待它,你就丢弃了对它的调用的句柄,放弃了调用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59401418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档