ios - 蓝牙通信 NSStream 是否应该需要一个单独的线程?

标签 ios nsthread nsstream nsrunloop external-accessory

使用ExternalAccessory与蓝牙设备通信,我使用EASession提供的输入和输出NSStreams向其发送消息。

在Apple的EADemo示例中,它将两个流调度到主线程的运行循环。但是,我注意到,在许多使用 NSStream 的网络相关应用程序中,开发人员更喜欢创建一个单独的线程来执行读/写操作并将流调度到新线程的运行循环。

对于蓝牙设备,是否应该实现这种行为(创建单独的线程),或者将其调度到主线程的运行循环不会导致严重的阻塞问题?

最佳答案

通常首选在主线程上做的事情越少越好。我认为 EADemo 在主线程上执行此操作,因为它适用于小示例的上下文,但在大型生产应用程序的上下文中则不然。

关于ios - 蓝牙通信 NSStream 是否应该需要一个单独的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31125290/

相关文章:

ios - 带有 Spinner 的 iOS 中的 sleep 功能

swift - NSStream.getStreamsToHostWithName 导致内存泄漏

ios - 当用户在详细 View Controller 中点击 `Back` 时触发一个函数

ios - UICollectionView 和 UINavigationController 不合作 - 设置提示时导航 Controller 遮挡单元格

ios - 在模拟等待时关闭键盘

iphone - iPhone-互联网上的点对点连接

ios - NSStreamDelegate 没有收到 NSStreamEvent.HasSpaceAvailable :

ios - parse.com 显示和编辑用户详细信息

ios - NSRegularExpression 错误,我不能使用正则表达式

objective-c - 一个线程与它的 NSAutorelease 池有什么关系?