iphone - GKSession 调用是否会阻塞主线程?

标签 iphone ios ipad gksession

我阅读了技术说明 TN2277当应用程序进入后台时,关闭各种网络套接字非常重要。这很可能还包括 GKSession。

他们说进入后台时需要一个过期处理程序,并且如果必须异步调用网络代码(如果必须向其他对等点说“再见”),这一点很重要。

那么 GKSession sendData 方法是异步的还是阻塞的?

最佳答案

在 iOS 6 中的某些情况下,GKSession 肯定会阻塞主线程。目前,我们无法将 iPad 池移至 iOS 6,因为我们的企业 GKSession 网络应用程序遇到了这些阻塞问题(但不是在 iOS 5 或更早版本中)。例如,从服务器 iPad 同时向 4 台以上 iPad 发送文件会导致阻塞行为。在 iOS 5 中,我们可以毫无问题地将文件同时发送给最多 15 个连接的客户端。

此外,我们的初步测试表明,混合使用 iOS 5 和 6 设备时,如果 iOS 6 设备在 iOS 5 设备之后连接,则 iOS 6 设备将会遇到主线程锁定的情况。

我已向 iOS 开发中心发布了事件报告,但没有收到任何回复...

11 月 30 日更新:我现已收到 Apple 的回复,他们将其视为 iOS 6 中 GameKit 中的错误并正在进行调查。如果您还在 iOS 6 中遇到 GKSession 阻塞问题(但不是 iOS 5 或更早版本),那么您应该将其报告为错误。

关于iphone - GKSession 调用是否会阻塞主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484580/

相关文章:

iphone - 如何为 AVAudioPlayer 制作安全的 mp3 文件,而不会出错

ios - 由于出现 fatal error 而无法为iOS编译pjsip

iOS 应用程序不返回到同一个 View Controller

ios - 如何在 Objective C 中将 NSLog 分类为错误、警告、消息和故障类型

iphone - 将 int64 转换为 NSData

iphone - 选择 UITableViewCell 时禁用选择效果

javascript - 检测到时需要加载 iPad 友好的 (html) 头文件,而不是常规的 Flash 头文件

ios - 在 iphone 上播放 flash 文件

asp.net 文本框不会在 iPhone 上显示垂直滚动条

ios - Restkit 发布不发送对象