如何使用Boost.在睡眠方面,以类似于Unity3D Coroutine的方式使用Coroutine
How to use Boost.Coroutine in a fashion similar to Unity3D Coroutine in terms of sleep?
如何使用Boost。在X毫秒的睡眠方面,以类似于Unity3D Coroutine的方式使用Coroutine?一般来说,我们希望有一个corutines数组,允许它们使用WaitForSeconds对象的一些替代方法作为yield return来等待下一次执行。Boost中有这样的东西吗。科罗廷还是如何从头开始重新创造效果?
Boost。纤维具有睡眠功能。见下文:
https://github.com/olk/boost-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)
}}
我有一个使用C++11和boost协程2的协程类。
CoroBehavior的用法与MonoPhavior of Unity非常相似,如下所示:
#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";
};
}
}
您可以从这里获取代码:https://github.com/exawon/CoroBehaviour
相关文章:
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- Unity3d 中还有其他方法可以访问设备相机吗?
- 恢复ASIO无堆栈Coroutine
- Unity3D的OpenCV dll调用导致FPS下降
- Unity3D高清视频通话
- 在 Ubuntu 16.04 下运行协程示例会得到"'experimental/coroutine' file not found"
- Unity3D 导入 C++ DLL 用于按引用方法传递
- 导致此代码“分割故障”的原因是coroutine调用`promist_type :: return_value()`
- 将 C# 方法封送到 Unity3D 与 C++
- C 1Z Coroutine线程上下文和Coroutine调度
- C 嵌套的Coroutine破坏问题
- Boost.Coroutine和Boost.Coroutine2之间的差异
- 如何使用Boost.在睡眠方面,以类似于Unity3D Coroutine的方式使用Coroutine
- Unity3D C# 随机输入生成器
- Unity3d原生API通过IL2CPP是否可行
- Unity3D调用外部dll
- 为什么c++游戏与unity3d相比如此简单
- 导入用 C++ 编写的 C# 捆绑包(Unity3D 项目)
- 将数据从 Unity3D 传递到 C++ dll,反之亦然