我正在开发一款想要通过GameKit添加云存储的游戏。原始保存代码基于同步文件I / O,并阻止了主队列。离开此设计将需要大量工作。不幸的是,GameKit API似乎在主队列上调度了回调,在这种情况下会导致死锁。
鉴于此,有没有办法手动处理调度队列中的块?这样,阻塞代码可以在等待回调的同时处理主队列,从而消除了死锁。
答案 0 :(得分:0)
您可以使用“操作”设置责任链。设置每个操作之间的依赖关系,然后使用Grand Central Dispatch将它们放在各自的队列中。
用户界面代码应位于主体中,并且应具有用于后台任务和用户生成的活动的服务质量。您可以创建一个调度队列,并将它们设置为同步(串行)或异步(并行)。
如果您包含代码,我将发布示例。否则,上面的操作有几种选择。