Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift iOS:可以从多个线程/位置调用特定函数,但我希望每个调用都在队列中执行_Swift_Multithreading_Grand Central Dispatch_Nsoperationqueue - Fatal编程技术网

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

Swift iOS:可以从多个线程/位置调用特定函数,但我希望每个调用都在队列中执行,swift,multithreading,grand-central-dispatch,nsoperationqueue,Swift,Multithreading,Grand Central Dispatch,Nsoperationqueue,我有一个从HealthKit读取数据的函数readData,它需要几秒钟才能执行。 这个函数可以从多个线程/位置调用,但我希望每个调用都在一个队列中执行,一次一个,而不是并行执行 在Swift for iOS中,是否有一种简单的方法可以使用GCD或OperationQueues来实现这一点?是的,串行调度队列应该可以解决您的问题。确保您在需要访问它的每个函数都可以访问的范围内创建它 let serialQueue = DispatchQueue(label: "serialQueue") ser

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


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

是的,串行调度队列应该可以解决您的问题。确保您在需要访问它的每个函数都可以访问的范围内创建它

let serialQueue = DispatchQueue(label: "serialQueue")
serialQueue.async{  //call this whenever you need to add a new work item to your queue
    //call function here
}

我有一个类似的问题,我考虑过DispatchQueue,但是我担心上面的@pratik要求顺序执行提交的流程(不是并行的)。调度队列本质上是串行的(FIFO),但是这些进程的执行仍然可以在多核处理器中并行进行。