作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个很长的协程,我想把它分成更小的协程。就像常规函数一样,使代码更清晰。它的行为应该就像只有一个大协程,所有小协程都连续发生一样。
我正在使用 #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/
我是一名优秀的程序员,十分优秀!