2010-01-26 6 views
9

NSOperationQueue를 재정렬 할 방법을 찾고 있습니다.Reorder NSOperationQueue

나는 모든 작업을 취소하고 원하는 순서대로 다시 던질 수 있지만 조금 더 깨끗한 것을 기대하고있었습니다. 이견있는 사람?

답변

21

NSOperationQueue과 기본 GCD 대기열의 주요 차이점은 작업 간의 종속성을 NSOperation으로 지원한다는 것입니다. NSOperationQueue은 모든 종속성이 완료 될 때까지 작업을 예약하지 않습니다. 사용 가능한 작업 중에서 가장 우선 순위가 높은 작업이 다음에 실행되도록 선택됩니다.

조작 대기열은 여러 작업을 동시에 실행할 수 있기 때문에 (maxConcurrentOperations에 따라) 대기열에 엄밀한 순서가 없습니다. 의존성 API를 사용하거나 작업 양을 변경하는 것이 훨씬 낫습니다.

작업을 큐에 추가 한 후에 종속성과 우선 순위를 변경할 수 있다고 생각합니다.

+0

우선 순위, 예. 그것은 나를 충분히 가깝게 할 것이다. 감사! – mousebird

6

큐에서 작업을 재정렬 할 수있는 기능이 없습니다. 한 조작이 다른 조작을 따라야한다는 것을 표현해야하는 경우, 종속성 API를 사용하십시오.

자세한 내용은 NSOperationQueue 설명서를 참조하십시오. 개요의 처음 두 단락에서는 종속성에 대해 설명합니다.

관련 문제