currentQueue和mainQueue之间的区别

时间:2015-09-04 01:37:22

标签: ios xcode swift

我正在查看以下代码:

NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue()) { (response, data, error) -> Void in
    //code
}

我正在努力深入研究苹果开发人员的指南,并试图了解这一切意味着什么。我对NSOperationQueue.mainQueue()所说的部分感到困惑。当我命令单击NSOperationQueue时,可以调用另一个方法,称为currentQueue()。我想知道差异是什么。

我查看了开发者指南,他们说currentQueue() Returns the operation queue that launched the current operation.mainQueue() Returns the operation queue associated with the main thread.但是,我不确定这实际意味着什么。我试图在网上查找所有这些术语,他们有太多的术语,我很难理解它们。如果你要向15岁的孩子解释一下,你会如何解释它?

1 个答案:

答案 0 :(得分:0)

mainQueue在主线程上运行其操作,主线程还负责在其runloop中处理应用程序的事件。事件的示例可以是触摸,动作,计时器触发或UI请求。

currentQueue可能与mainQueue相同或不同。操作可以使用currentQueue来确定它正在运行的队列。

在不同的队列上运行操作的目的是不延迟或抢占更重要的交互式任务(例如滚动或打字),以及更长时间运行的不太重要的后台任务,如下载或图像处理。

您可以在Concurrency Programming Guide

中详细了解队列