grand-central-dispatch

    0热度

    2回答

    我有一个类,它看起来有点像: final class Token { .......... public enum Result { case Success() case Failure(Error) } private var successClosure : (() -> Void)? private var failureClosure : ((Er

    0热度

    1回答

    Inside @IBaction func login in else statement我打电话给startObserving()。为什么它不在主线程上执行? 在else语句中计算self.startObservingDB(callback: { (snapValue) in中的代码之前执行此语句print("executed")。 我不希望startObservingDB在它从Firebase

    -1热度

    1回答

    据我所知,在并发队列中,以前的任务不会阻塞后面任务的执行。那么如何才能打印出“hello”,但下面的代码中没有打印出单个“世界”? override func viewDidLoad() { super.viewDidLoad() let concurrentQueue = DispatchQueue(label: "test", attributes: .concurre

    1热度

    2回答

    我知道已经有很多关于调度队列,异步任务等的帖子,但是我无法从这些帖子中检索出有用的解释,因为由于额外的代码太多的分心。我在那里有人能够给我一个清楚的指示,说明如何在任务A完成后开始任务B? 为了成功运行任务B,我需要来自任务A的一些数据,并且我知道我必须使用DispatchQueue.async做些事情,但我不知道具体如何。

    1热度

    3回答

    我有9个图像的数组,我想将它们全部保存到用户的相机卷。你可以用UIImageWriteToSavedPhotosAlbum来做到这一点。我写了一个循环来保存每个图像。这个问题是由于某种原因,它会only save the first five。现在,顺序很重要,所以如果图像无法保存,我想重试并等待,直到成功,而不是有一些不可预测的比赛。 所以,我实现一个完成处理程序,并认为我可以用旗语像这样: f

    1热度

    1回答

    我仍然试图掌握调度队列 我知道创建的队列和全局队列之间的区别在于,当创建的队列串行执行时,全局并行执行。 SERIAL(创建队列) let anotherQueue = DispatchQueue(label: "com.appcoda.anotherQueue", qos: .utility) 并发(全球队列) let globalQueue = DispatchQueue.global() 不

    -1热度

    1回答

    我正在使用位于here的异步库。我的代码如下: let backgroundBlock = Async.utility { for serial in serialarray { self.getVersion(serial: serial) } } backgroundBlock.main { print(seria

    0热度

    2回答

    为什么dispatchQueue.main给我同步或异步的选项,如果主队列始终是同步 dispatchQueue.main.async{ //code } dispatchQueue.main.async{ //code } 的是同 dispatchQueue.main.sync{ //code } dispatchQueue.main.sync{

    1热度

    2回答

    我的应用程序在DispatchQueue.main中的动画播放时没有反应,我知道这是由于主线程被阻止。有没有办法解决这个问题 DispatchQueue.main.async { self.alert(text: "Hello") } 我的动画需要6秒,所以应用程序很长时间没有响应。 我的动画: func alert(text: String){ let alert =

    0热度

    2回答

    因此,我正在解析来自API服务的json响应,并且更新了应该在异步发生的响应解析闭包中的UI。 我注意到 - 即使API的响应速度非常快,我可以从控制台日志中看出 - UI不会立即更新。它需要几秒钟来更新。 所以我搜索了一下,我发现把我的UI更新代码放在DispatchQueue.main.async()里面可以修复它。 这是为什么?不是封闭应该是异步的并且关心所有这些?我误解了什么吗? 谢谢