如何一次执行上述所有任务以提高速度。
self.passingMsgIdsTofetchMsgss(messageIDs : msgIDBatches[0])
self.passingMsgIdsTofetchMsgss(messageIDs : msgIDBatches[1])
self.passingMsgIdsTofetchMsgss(messageIDs : msgIDBatches[2])
self.passingMsgIdsTofetchMsgss(messageIDs : msgIDBatches[3])
最佳答案
您要查找的是 DispatchQueue 上的类函数 concurrentPerform
例如:
DispatchQueue.concurrentPerform(iterations: msgIDBatches.count) { (index) in
self.passingMsgIdsTofetchMsgss(messageIDs : msgIDBatches[index])
}
如果您正在更新 UI 并且确保 passingMsgIdsTofetchMsgss
是线程安全的,您显然需要小心回调主队列。也值得使用 time profiler 检查这就是性能瓶颈所在。
另一个选项是 OperationQueue
,您可以将所有提取添加到队列中并同时执行它们。
关于ios - 在 iOS swift 中异步/并发/并行运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49775203/