我有一个函数readData从HealthKit读取数据,需要几秒钟才能执行.可以从多个线程/位置调用此函数,但我希望每次调用在队列中执行,一次一个,而不是并行执行.
有没有一种简单的方法可以使用GCD或OperationQueues在Swift for iOS中实现这一点?
是的,一个连续的DispatchQueue可以解决你的问题.确保在每个需要访问它的功能的范围内创建它.
let serialQueue = DispatchQueue(label: "serialQueue")
serialQueue.async{ //call this whenever you need to add a new work item to your queue
//call function here
}
Run Code Online (Sandbox Code Playgroud)