grand-central-dispatch

    -2热度

    1回答

    我有一个被多次调用的方法。但我只需要在最后的方法调用中采取行动。我试图dispatch_async,但没有工作,因为仍然被呼叫排队: -(void)doingSomething:(NSString*)someValue { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    -1热度

    1回答

    - (void)viewDidLoad { [super viewDidLoad]; dispatch_queue_t queue = dispatch_queue_create("myQueue", DISPATCH_QUEUE_CONCURRENT); for (int i = 0; i < 10000; i++) { dispatch_async(q

    0热度

    1回答

    我创建了一个用于下载数据的网络文件,并且我想将数据分配给另一个视图控制器,以便我可以使用注释填充地图。数据下载成功,但我无法将其分配给视图控制器。当我将网络代码包含在视图控制器中并使用DispatchQueue.main.async时,我只能使它工作。我想保持网络文件和视图控制器分开。任何见解将不胜感激。提前为许多代码行道歉。 联网文件如下: import UIKit class Networ

    1热度

    1回答

    我怎么能等待本身具有异步操作完成的功能? 让我给你举个例子: Function_A获取从图库中的照片。提取操作将使用提取闭包异步执行。 我打电话Function_A在Function_B,我想等待照片抓取操作完成,然后继续我的代码。 我已经试过什么: 我用调度组,但并未奏效。我也尝试在同步块中调用Function_A,这也是不成功的。 我怎么能等待这个操作完成?可以因为将读取操作运行到另一个队列而

    -1热度

    1回答

    我有存储在远程数据库中的博客文章。用户可以评价和/或评论每篇文章。所以我需要关闭1或2个不同的网络请求。但我必须等到他们(或它)完成。 什么是以下情形的最佳做法: func updateRatingAndComment(){ if commentTextView.text != "" { updateComment() } if ratingVie

    4热度

    2回答

    我有这样的代码: let goAheadAction = UIAlertAction(title: "Go Ahead", style: .default) { _ in let dispatchGroup = DispatchGroup() dispatchGroup.enter() Server.POSTRequest(accessPoint: "/UserSe

    0热度

    1回答

    我目前有一个数组迭代通过价值图像路径,并希望异步检索这些图像在for循环内的第一个。我试过使用两个分派组,但完成处理程序总是在检索图像之前返回。 static func getAllEntriesWithDisplayModel(completion: @escaping (_ models: [EntryDisplayModel]) ->()) ->(){ let entries =

    1热度

    1回答

    我正在使用以下函数获取metadataObject并将其发布到服务器。 func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) 现在我想一个定时器(计数器),因此当用

    0热度

    2回答

    我知道并发DispatchQueue允许其中的代码立即返回,因此不会阻塞调用线程。这通常用于加载大量数据的后台任务。 我还了解到完成处理程序(例如,在URLSession中)允许在某些任务完成后执行代码内部处理程序。 我的问题是:这是否意味着并发调度队列和完成处理程序有重叠的目的?如果我已经使用完成处理程序,那么不需要用并发调度队列来包装它吗? 例如,下面是一个使用URLSession的耗时数据加

    0热度

    1回答

    我在iOS上编写类似于工作线程或后台线程的东西。每次有任务进入时,我都会把它放到后台线程中。但问题是,我不想每次都使用这个dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});,因为它会使任务在不同的线程中运行,并且创建一个线程需要很多时间。 所以我的问题是如何使一个GCD队列,并把它运