iOS:可以从多个线程/位置调用特定函数,但我希望每个调用都在队列中执行

Pra*_*hen 3

我有一个函数readData从HealthKit读取数据,需要几秒钟才能执行.可以从多个线程/位置调用此函数,但我希望每次调用在队列中执行,一次一个,而不是并行执行.

有没有一种简单的方法可以使用GCD或OperationQueues在Swift for iOS中实现这一点?

Dáv*_*tor 5

是的,一个连续的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)