gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:07:36 25 4
gpt4 key购买 nike

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

我正在使用 #include <experimental/coroutine> .

我一直在尝试这样的事情:

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()根本不会被执行。

最佳答案

这就是 co_await foo() 所做的——给另一个协程 foo 一个取得进展的机会,暂停当前 必要时协程等待它完成。如果您只是调用一个协程但不等待它,您将丢弃对它的调用的句柄,放弃调用。

关于c++ - 如何在 C++ 中从另一个协程调用一个协程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59401418/

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