NSOperationQueue
에 NSOperations
이 추가되었습니다. 작업 대기열은 maxConcurrentOperationCount
이 1로 설정되어 있으므로 NSOperations
이 차례대로 실행됩니다. 나는 NSOperationQueue
에 cancelAllOperations
를 호출하여 보류중인 모든 NSOperations
을 취소하려는 NSOperation
의 completionBlock
에서 지금 NSOperations와 완료 블록이 동시에 실행됩니까?
안전한가요? 이전 작업의 completionBlock
이 완전히 실행 된 후에 만 다음 작업의 start
- 메서드가 호출되는지 확인할 수 있습니까? 또는 이전 작업의 completionBlock
과 현재 작업의 작업이 동시에 실행됩니까?
내가 묻는 이유 : AFNetworking을 사용하여 AFHTTPRequestOperations
의 배치를 실행하고 이전 배치 요청이 모두 성공한 경우에만 하나의 요청을 수행하려고합니다.
다양한 분석
addDependency:
를 호출하여이가 시작되기 전에, 당신은NSOperations
간의 종속성을 설정할 필요가 취소되어 있는지 확인하려면! 지금도 같은 것을 경험했습니다. – Klaas적어도 iOS 9에는 맞지 않습니다. 종속 작업을 취소 할 수있는 완료 블록이 있지만 완료 블록이 실행되기 전에 일반적으로 이미 실행되기 시작했습니다. – Accatyyc
맞습니다. 실험을 다시 실행 했으므로 이제 완성 블록과 다음 작업이 항상 병렬로 실행됩니다. – Tom