C++ 如何在睡眠方面以类似于Unity3D的方式使用Boost.Coroutine?

C++ 如何在睡眠方面以类似于Unity3D的方式使用Boost.Coroutine?,c++,boost,coroutine,C++,Boost,Coroutine,如何以类似于X毫秒睡眠的方式使用?一般来说,我们希望有一个corutine数组,允许它们使用WaitForSeconds对象的一些替代项作为收益率返回,来预测下一次执行。Boost.Coroutine中的这些东西有什么用处吗?或者如何从头开始重新创建效果?Boost.Fiber具有睡眠功能。见下文: Fiber是线程接口的Boost.Coroutine的包装器 // <boost/fiber/operations.hpp> namespace boost { namespace t

如何以类似于X毫秒睡眠的方式使用?一般来说,我们希望有一个corutine数组,允许它们使用WaitForSeconds对象的一些替代项作为收益率返回,来预测下一次执行。Boost.Coroutine中的这些东西有什么用处吗?或者如何从头开始重新创建效果?

Boost.Fiber具有睡眠功能。见下文:

Fiber是线程接口的Boost.Coroutine的包装器

// <boost/fiber/operations.hpp>
namespace boost {
namespace this_fiber {
void sleep_until( fibers::clock_type::time_point const& sleep_time);

template< typename Rep, typename Period >
void sleep_for( chrono::duration< Rep, Period > const& timeout_duration)
}}
//
名称空间提升{
给这根光纤命名{
无效睡眠直到(光纤::时钟类型::时间点常数和睡眠时间);
模板
无效睡眠时间(计时::持续时间<重复,周期>常数和超时时间)
}}

<代码> > p>我使用C++ 11和Boost CORTENIN 2的协同程序类。 CoroBehaviour的用法与统一的单一行为非常相似,如下所示:

#include "CoroBehaviour.h"
#include <iostream>

class ExampleClass : public CoroBehaviour
{
    void Start()
    {
        StartCoroutine(coroutineA());
    }

    Enumerator coroutineA()
    {
        return [=](CoroPush& yield_return)
        {
            // wait for 1 second
            std::cout << "coroutineA created";
            yield_return(new WaitForSeconds(1.0f));
            yield_return(StartCoroutine(coroutineB()));
            std::cout << "coroutineA running again";
        };
    }

    Enumerator coroutineB()
    {
        return [=](CoroPush& yield_return)
        {
            std::cout << "coroutineB created";
            yield_return(new WaitForSeconds(2.5f));
            std::cout << "coroutineB enables coroutineA to run";
        };
    }
}
#包括“CoroBehaviour.h”
#包括
类示例类:公共行为
{
void Start()
{
start例程(coroutineA());
}
枚举器coroutineA()
{
回报率[=](科罗普什和收益率回报率)
{
//等一秒钟
标准::cout