C# 协程睡眠式多线程导致垃圾回收问题
发布时间
阅读量:
阅读量
孙广东 2015.4.9 24:00
了解使用协程所能实现的功能共有两个方面:第一个功能是延迟一段代码的执行;第二个功能是在某个操作完成后才开始处理后续的指令。简而言之,在特定的时间节点上处理代码逻辑。需要注意的是,协程与普通的线程不同,并非采用异步技术;而与C#中的Update函数类似的是,在主线循环中处理任务。由于协程机制本身已经去除了同步与锁的问题
对于使用协程带来GC问题,不推荐使用了!。
使用我之前封装的 游戏简单控制逻辑Clock类 可以完美解决
IEnumerator myAwesomeCoroutine()
{
while (true)
{
doAwesomeStuff();
yield return new WaitForSeconds(waitTime);
}
}
我想要强调的是采用 'yield return new WaitForSeconds()' 这种方法会导致GC循环并占用过多内存资源。具体来说,在内存管理方面,'new' 运算符(相较于标准的协程 'yield return
全部评论 (0)
还没有任何评论哟~
