【发布时间】:2019-07-10 09:29:18
【问题描述】:
假设我有几个数据库写入闭包,我想在单个线程上执行它们,但不是作为批处理 - 我需要在每次写入后更新 UI。
串行队列如:
DispatchQueue.global(qos: .background).async {}
或
DispatchQueue(label: "hello world").async {}
在他们想要运行的任何线程中运行,但可以串行运行。
我怎样才能有一个只在一个后台线程上运行的队列?
【问题讨论】:
-
在哪个线程上运行有什么关系,只要它不是主线程?用例是什么?
-
使用一个核心数据上下文或一个领域。
-
在上下文中使用执行块时,我可以在 CoreData 的任何线程上进行任何工作而不会出错。它在自己的队列上执行它的工作。我认为你在尝试在 1 个线程上执行时犯了一个错误。在哪个线程上执行某事并不重要,重要的是队列。
-
感谢您的努力,如果您可以提供您的方法的代码示例,这将非常有帮助,但 Realm 仅在一个线程中使用时仍然具有显着的性能优势。而且我真的很好奇存档这种行为的方法。
-
看起来确实是重复。但仍然没有答案。
标签: swift concurrency grand-central-dispatch dispatch-queue