Swift:为蓝牙中央管理器选择队列

2024-02-12

我正在开发一个应用程序,该应用程序将通过 BLE 与智能设备连接并与其通信。

问题是:在哪个队列中处理蓝牙事件的最佳实践是?

我读过很多教程,在所有教程中我发现了这一点:

centralManager = CBCentralManager(delegate: self, queue: nil)

他们选择处理蓝牙事件主队列 (queue: nil),但我认为这不是一个好的做法。因为可能有很多查询从中央设备发送到外围设备,并且很多答案从外围设备发送到中央设备。

我认为这可能是应用程序运行缓慢的原因,并且可能会对生产力产生不利影响,对吗?

这会淹没 UI 更新队列吗?


I am using dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0) for the CBCentralManager for some time in my Bluetooth projects and it is working flawlessly.

^ 从头开始​​。我不建议使用全局队列。原因是全局队列是并发队列,而您可能需要串行队列。创建一个新的DispatchQueue(label: "CentralManager")并将其传递给CBCentralManager.

所有委托方法都将传递到您指定的队列。如果您对这些方法进行一些非常轻的操作,我想您可以保留主队列。但最好使用后台队列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift:为蓝牙中央管理器选择队列 的相关文章

随机推荐

  • C# [匿名\通用] 对象到 byte[] 没有 BinaryFormatter [在 .NET 4.5 中]?

    BinaryFormatter效果很好 但不存在于 NET 4 5 的可移植类库中 我读到它是在 NET 4 6 Portable 中 我还没有证实这一点 因为当我在项目设置中更改为 4 6 时 我收到警告 消息 4 5 将自动成为目标 除
  • 为什么 Python 和 CUDA 不支持半精度复杂浮点运算?

    NumPY 有复杂64 https docs scipy org doc numpy user basics types html对应于两个float32 但它也有 float16 但没有 complex32 怎么会 我有涉及 FFT 的信
  • 为什么 Git 使用加密哈希函数?

    为什么 Git 使用SHA 1 http en wikipedia org wiki SHA 1 加密哈希函数 而不是更快的非加密哈希函数 相关问题 堆栈溢出问题为什么 Git 使用 SHA 1 作为版本号 https stackoverf
  • GitHub 从另一个存储库包含

    我是 github 的新手 我的机器上有一个 github 存储库 我想将另一个存储库 作为第三方 包含到我的存储库中 我相信我应该先做一个叉子 但如何将其包含在我的本地存储库中 我尝试过子模块但没有成功 Thanks git 子模块 ht
  • 如何管理 Perl 应用程序开发、构建和部署?

    我还没有想出一种令人满意的方法来管理 Perl 应用程序的开发 构建和部署 我想听听您如何解决这个问题和 或您希望在您现在没有的应用程序构建系统中拥有什么 请描述您的应用程序类型 它是一个 Web 应用程序 它是否在服务器上运行 或者您是否
  • webview中的字体没有改变

    Typeface hnr Typeface createFromAsset this getAssets HelveticaNeueLTStd Md otf html table tr td align left td tr table
  • 用于检测变量更改的 Java 事件侦听器

    我似乎无法在任何地方找到我的问题的答案 是否有任何事件侦听器可以检测布尔值或其他变量的变化 然后对其采取行动 或者是否可以创建自定义事件侦听器来检测这一点 请我似乎无法在任何地方找到解决方案 我发现这个网站 http www example
  • GroupLayout:值得学习吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对java 特别是swing 比较陌生 最近一直在制作一些相当简单的应用程序 边学习边学习 最新的有很多表单组件 例如 JLabels JTe
  • 登录 Microsoft AD 后 Request.IsAuthenticated 始终为 false

    我有一个 ASP NET 4 5 1 MVC WebAPI 项目 它使用 SSO 针对 Microsoft 进行身份验证 成功登录 Microsoft 后 我 的 HomeController 上仍然有 Request IsAuthenti
  • 如何在文本区域中使用不同的字体颜色?

    我希望在输入特定关键字时文本区域中的字体颜色发生变化 就像在 Visual Studio 中一样 我没有在任何地方见过这个 所以我不知道这是否可以用 HTML 和 JavaScript 实现 有人见过这样的东西吗 或者知道怎么写吗 Text
  • 如何使用包含正则表达式的测试路径

    我想检查文件 Test txt 是否存在于特定目录 文件夹名称为 16 位数字 中 我尝试了以下命令 Test Path C Users
  • 无法使用 Unity 找到名称空间“ServiceModel”

    我想在我的 Unity 应用程序中使用 WCF 服务 通过命名管道 因此 我包含以下两个命名空间 using System ServiceModel using System ServiceModel Channels 在Unity中运行我
  • Composer:删除一个包,清理依赖项,不更新其他包

    情况 假设我有一个由 Composer 安装的项目 其中包含两个软件包 php composer phar require squizlabs php codesniffer 2 0 phpmd phpmd 2 1 自动生成的compose
  • 如何解决“此翻译单元中未实现带有选择器的方法”?

    我收到这个错误 如下图所示 the showSingerInfo方法在父类中定义 我该如何解决这个警告 看起来 Clang 无法解析 showSingerInfo 方法的声明 我猜测 showSingerInfo 是翻译单元 类中的本地方法
  • 如何避免从 solr 检索整个存储字段

    我使用 sunspot 和 solr 作为 Rails 应用程序来搜索电子书内容 为了突出显示功能 我必须将 ebook content 设置为存储的文件 每次我查询 solr 的结果时 它都会发回有关该书的整个文档内容 其中使得查询非常慢
  • 在 Android 设置中防止“匹配的 Activity 可能不存在”

    大部分活动操作 用于启动各种设置活动 Settings http developer android com reference android provider Settings html类带有警告 在某些情况下 匹配的活动可能不存在 因
  • 如何使用正则表达式和 Java 计算文本中的音节

    我有文字作为String并需要计算每个单词的音节数 我尝试将所有文 本拆分为单词数组 然后分别处理每个单词 我为此使用了正则表达式 但音节模式并没有发挥应有的作用 请建议如何更改它以计算正确的音节数 我的初始代码 public int ge
  • ZipInputStream.getNextEntry 在某些 zip 文件上返回 null

    我有一个简单的代码来提取 zip 文件 它按预期工作得很好 但在测试过程中 我尝试使用一些 zip 文件 我从互联网下载的字体 图标和模板 来编写代码 以确保它应该提取任何 zip 文件已提供 但它不适用于某些 zip 文件 以下是重新生成
  • nginx 未知指令“上游”

    我使用 nginx 作为代理服务器将请求转发到我的 Gunicorn 服务器上 当我跑步时sudo nginx t c etc nginx sites enabled mysite我收到以下错误 emerg unknown directiv
  • Swift:为蓝牙中央管理器选择队列

    我正在开发一个应用程序 该应用程序将通过 BLE 与智能设备连接并与其通信 问题是 在哪个队列中处理蓝牙事件的最佳实践是 我读过很多教程 在所有教程中我发现了这一点 centralManager CBCentralManager deleg