我开始研究 Swift 和 Mac OS 的异步代码。我想在我的应用程序中添加一个音序器,所以我需要一个非常类似于 SpriteKit 的游戏循环运行的循环,没有视觉库。
我想做的是一个虚拟时间线,我可以运行、暂停、停止并使用它来安排发送网络消息的操作。我需要尽可能准确,可能在高优先级线程上运行或使用高优先级计时器。
只要我能在与 GUI 不同的线程上运行一个高精度的运行循环,我就可以很好地构建其余部分。我只是在寻找在 Swift 中实现这一目标的最佳方法。任何图书馆可以做到这一点,所以我不必做基本的管道?
谢谢!
编辑: 即使应用程序在后台运行,这个循环也必须运行。
计划是最终将它用作 OSC 音序器来控制采样准确的音频引擎(现在我可以在大约 4 秒内获得大约 14000 条 OSC 消息,而且它会变得更大)。它将随着时间的推移处理 teigger 的时间和动作处理参数(该循环中不涉及音频,至少不直接涉及),并可能生成/同步到 SMPTE 时间码以与视频和音频播放服务器同步。重要的是,时间保持尽可能精确,因为它可以(将)在现场活动中使用。
那么使用高精度计时器来保证准确性?还是运行 GCD 线程?我还没有接触过 OS X 中的异步编码,所以我只想从正确的方向开始。