Questions tagged «dispatch-async»

6
在Swift 3,Swift 4及更高版本中,我如何使用dispatch_sync,dispatch_async,dispatch_after等?
我在Swift 2.x(甚至1.x)项目中有很多代码,如下所示: // Move to a background thread to do some long running work dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { let image = self.loadOrGenerateAnImage() // Bounce back to the main thread to update the UI dispatch_async(dispatch_get_main_queue()) { self.imageView.image = image } } 或类似这样的东西来延迟执行: dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { print("test") } 或Grand Central …

3
了解dispatch_async
我对此代码有疑问 dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSData* data = [NSData dataWithContentsOfURL: kLatestKivaLoansURL]; [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES]; }); 此代码的第一个参数是 dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 我们是否在要求此代码在全局队列上执行串行任务,该队列本身的定义是返回给定优先级的全局并发队列? 使用dispatch_get_global_queuemain队列有什么好处? 我很困惑。您能否帮助我更好地理解这一点。

6
iPhone-大中央调度主线程
我一直在应用程序中成功使用大型中央调度程序,但是我想知道使用这样的东西的真正优势是什么: dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff 甚至 dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff 我的意思是,在两种情况下,您都将触发要在主线程上执行的块,确切地说是应用程序的运行位置,这无助于减少负载。在第一种情况下,您无法控制该块何时运行。我已经看到了在您触发它们后半秒钟执行块的情况。第二种情况,类似于 [self doStuff]; 对? 我想知道你们的想法。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.