我有一堆NSOperations
添加到NSOperationQueue
。操作队列的maxConcurrentOperationCount
设置为1,以便NSOperations
一个接一个地运行。NSOperations及其completionBlocks是否同时运行?
如今,在NSOperation
我想通过在NSOperationQueue
调用cancelAllOperations
取消所有未决NSOperations
的completionBlock
。
这样做是否安全?我是否可以确定只有在前一个操作的completionBlock
已完全执行后才会调用下一个操作的start
-方法?或者执行前一个操作的completionBlock
和当前操作的任务是否同时运行?
我之所以问:我使用AFNetworking来执行一批AFHTTPRequestOperations
,并希望只有当该批次的所有先前请求都成功时才执行一个请求。
大分析!刚刚经历过同样的事情。 – Klaas 2015-07-22 10:39:59
这似乎并不真实,至少不适用于iOS 9.我有一个完成块,我可能要取消依赖操作,但通常在完成块运行之前已经开始执行。 – Accatyyc 2016-02-15 16:31:13
你是对的,我重新运行了我的实验,现在完成块和下一个操作总是并行运行。 – Tom 2016-07-01 14:05:57