快速的多任务功能

问题描述

我正在制作一个涉及在玩家向左或向右行走时加载块的游戏,但是,当前用于加载块的框架涉及一个大的for循环。问题在于,只要加载了块,游戏就会在运行该列表时打a一秒钟。有没有办法将此功能推到后台,以便它可以运行,并且主游戏不必等待它完成就停止!

如果迅速有任何其他形式的同时运行的代码块或函数,我很乐意尝试将它们引入我的游戏中。我对多线程和多核工作非常陌生,因此将不胜感激

解决方法

假设您正在为Apple平台开发,则应该研究GCD(大中央调度)。 Swift还没有本机并发支持。 (已在计划中,但尚未添加到语言中)

这个想法是,您将一个块提交给后台调度队列,以进行“繁重的”数据处理。在该块中,您将遍历数据,然后使用DispatchQueue.main.async {<code>}将数据发送到主线程以进行显示(绝不应从后台线程执行UIKit代码。)