422得票17回答
如何在Swift中使用后台线程?

如何在Swift中使用多线程?dispatchOnMainThread:^{ NSLog(@"Block Executed On %s", dispatch_queue_get_label(dispatch_get_current_queue())); }];

70得票5回答
DispatchQueue.global(qos: .userInteractive).async和DispatchQueue.main.async相同吗?

我正在学习以下教程: https://www.raywenderlich.com/148513/grand-central-dispatch-tutorial-swift-3-part-1, 其中给出了 QoS 类别“User-interactive”的定义,并提到这应该在主线程上运行。那么,...

45得票1回答
DispatchQueue:不可在非主线程上使用asCopy = NO进行调用。

我将UIAlertController在主线程上呈现,如下:class HelperMethodClass: NSObject { class func showAlertMessage(message:String, viewController: UIViewController...

21得票2回答
停止在主线程上运行的DispatchQueue

I have this block of code: DispatchQueue.main.asyncAfter(deadline: .now() + (delay * Double(isDelayAccounted.hashValue)) + extraDelay) { ...

14得票1回答
“dispatch_get_main_queue()”的使用存在歧义

我该如何使用DispatchQueue类替换以下iOS的Swift 3代码?这是旧的Swift 3代码,最新的Xcode无法将其转换为Swift 5。dispatch_async(dispatch_get_main_queue()) { () -> Void in // code }...

13得票2回答
SWIFT - OperationQueue.main.addOperation和DispatchQueue.main.async有什么区别?

有时候,我必须在主线程上执行一些操作,建议将代码放在 OperationQueue.main.addOperation 中。 其他时候,建议将代码写在 DispatchQueue.main.async 中。 这两者之间的区别是什么? (有一个类似的问题标题,但内容不匹配。)

12得票2回答
处理多个完成处理程序

我正试图协调每个数组元素的多个完成处理程序。 代码本质上是这样的:var results = [String:Int]() func requestData(for identifiers: [String]) { identifiers.forEach { ident...

9得票2回答
SwiftUI: 如何在用户停止在TextField中输入时运行代码?

所以我正在尝试制作一个搜索栏,直到用户停止输入两秒钟后才运行显示结果的代码(也就是说,当用户输入新字符时,应该重置某种计时器)。我尝试使用.onChange()和AsyncAfter DispatchQueue,但它并不起作用(我认为我理解为什么当前实现方式不起作用,但我不确定是否正确地解决了...

9得票2回答
同步/异步行为是否类似于串行/并发,即它们都控制调度队列,还是同步/异步只控制线程?

大多数stackoverflow上的答案都暗示同步和异步行为与串行和并发队列概念差异非常相似。就像@Roope的第一条评论中的链接所示。 我开始认为串行和并发与DispatchQueue有关,而同步/异步是关于操作在线程上执行方式的。 我是对的吗? 例如,如果我们使用“DQ.main.sy...

8得票2回答
Swift中DispatchQueue类型的区别

据我了解,在 Swift 中有 3 种 DispatchQueue 类型: - Main (串行) (主线程) - Global (并发) (在后台线程中并行工作) - Custom (并发或串行) 每个队列都可以是异步或同步的。 第一个问题: Main 队列只在 UI 线程上工作而不...