【问题标题】:What is the NSOperations' advantage compared wih Grand Central Dispatch(GCD)?NSOperations 与 Grand Central Dispatch (GCD) 相比有什么优势?
【发布时间】:2014-04-30 07:26:02
【问题描述】:

我们知道用 GCD 代替 NSOperation 有太多的好处,比如: 1.优雅少代码 2. 低级API,性能更高

所以,在 GCD 出来后,我在日常工作中再也没有使用过 NSOperation。

但是,是否有任何情况/示例更倾向于使用 NSOperation 而不是 GCD?

谢谢

【问题讨论】:

标签: grand-central-dispatch nsoperation nsoperationqueue


【解决方案1】:

'NSOperation' 让您可以使用 setMaxConcurrentOperationCount: 方法指定最大并发请求数,这通常是非常好的事情。

另外,NSOperation 允许您使用addDependency: 方法指定一些操作之间非常复杂的依赖关系。您可以说某些操作的某些执行应该仅在其他一些操作完成时才开始。当然,您可以使用 GCD 实现相同的效果,但这很快就会变得相当过大,因为许多依赖项嵌套块将不是最干净的解决方案。

当谈到 GDC 和NSOperationsQueue 的描述时,有this 文章。我发现它真的很有帮助。

//编辑 此外,NSOperation 似乎是更面向对象的方法,这使您可以指定某些请求的逻辑以完全隔离到 NSOperation 的子类中。

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    相关资源
    最近更新 更多