2012-10-06 98 views
3

1)为什么要使用NSOperationQueue我们为什么要使用NSOperationQueue?

2)我们使用它有什么好处?

3)我们能在同一时间实现通过NSOperationQueue多个同步的网络操作?

4)为什么我们使用NSOperationQueueUITableView延迟加载?没有NSOperationQueue是不可能的?

+3

阅读[并发编程指南]中的操作队列(http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html) – 0x8badf00d

+0

这是对合作伙伴问题的掌握。 NSOperationQueue并不是执行大量这些事情的唯一方法,因此可能请查看并发指南,然后查看您是否不能在稍后再关注您的问题。 –

+0

试着在未来以更好的方式提出问题。 –

回答

9

我们为什么要使用NSOperationQueue?

您应该使用NSOperationQueue实现并发时工作单位是NSOperation或它的一个子类。或者与其他需要NSOperationQueue的API(例如, addObserverForName:object:queue:usingBlock:方法NSNotificationCenter

我们使用它有什么好处?

当异步执行的工作单元可以封装在一个NSOperation对象中时。也许你在问什么是优于其他异步API的?这在很大程度上(但不完全)是您需要的抽象级别的问题,并且适合管理。作为one author put it“总是使用可用的最高级别抽象,并在测量显示它们需要时下降到较低级别的抽象。”

我们能在同一时间实现通过NSOperationQueue多个同步的网络操作?

当然。在网上看到很多关于这个主题的教程。像由Marcus Zarra估计的this one一样。

为什么我们在Tableview的lazyloading中使用NSOperationQueue?

有关,就像使用任何并发的技术一样的道理。加快工作速度和/或避免阻止用户界面。在你引用的情况下,主要是关于不用长时间运行的任务阻塞UI。

如果没有NSOperationQueue是不可能的?

当然这是可能的。 NSThread,GCD等

+0

非常感谢NSBum先生:) – Ganesh