我有一堆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