我有一个很长的协程,我想把它分成更小的协程。就像常规函数一样,让代码更清晰。它的行为应该像只有一个大的协程,所有较小的协程都是连续发生的。
我使用的是#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()根本不会被执行。
发布于 2019-12-19 16:08:25
这就是co_await foo()所做的-给另一个协程foo一个取得进展的机会,根据需要暂停当前的协程以等待它完成。如果你只是调用一个协程,而不是等待它,你就丢弃了对它的调用的句柄,放弃了调用。
https://stackoverflow.com/questions/59401418
复制相似问题