相关疑难解决方法(0)

NSOperation vs Grand Central Dispatch

我正在学习iOS的并发编程.到目前为止,我已经读过NSOperation/NSOperationQueueGCD.使用NSOperationQueueover 的原因是什么GCD,反之亦然?

听起来像是两者,GCD并从用户那里NSOperationQueue抽象出明确的创造NSThreads.然而这两种方法之间的关系对我来说并不清楚,所以任何反馈都要赞赏!

concurrency nsoperation nsoperationqueue grand-central-dispatch ios

454
推荐指数
7
解决办法
11万
查看次数

为什么我应该选择GCD而非NSOperation并阻止高级应用程序?

Apple的Grand Central Dispatch参考文献称:

"......如果你的应用程序需要在系统的Unix级别运行 - 例如,如果它需要操作文件描述符,Mach端口,信号或定时器.GCD不仅限于系统级应用程序,而是在你之前将它用于更高级别的应用程序时,您应该考虑Cocoa中提供的类似功能(通过NSOperation和块对象)是否更易于使用或更适合您的需求."

http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html

对于高级应用程序,我实际上无法想到这种情况,其中GCD的使用是强制性的,并且可以/不应该使用NSOperation.

有什么想法吗?

concurrency objective-c grand-central-dispatch ios objective-c-blocks

31
推荐指数
2
解决办法
2万
查看次数

SWIFT-OperationQueue.main.addOperation和DispatchQueue.main.async有什么区别?

有时我必须在主线程上做一些事情,建议将代码放在OperationQueue.main.addOperation

其他时候,建议在其中编写代码DispatchQueue.main.async

两者之间有什么区别?

(有一个类似的问题标题,但是内容不匹配。)

queue asynchronous operation swift dispatch-queue

5
推荐指数
1
解决办法
334
查看次数