2012-03-05 4 views
1

NSOperationQueue에 대한 사용자 지정 클래스의 개체 (NSOperation에서 상속)를 추가 한 경우 "setMaxConcurrentOperationCount"를 1로 설정했습니다. 그러나 다음과 같은 모든 작업을 취소 할 때 :NSOperation cancelAllOperations 작업을 취소하는 데 너무 오래 걸립니다.

[mOperationQueue cancelAllOperations];

가끔 취소하는 데 약 10-15 초가 걸립니다.

NSOperationQueue는 약 60-80 개의 작업 (작업)을 포함합니다.

처음에는 메인 스레드에서 메인 스레드에서 작업을 취소했으나 이제는 다른 스레드에서 처리했습니다.하지만 내 주요 문제는 시간이 오래 걸린다는 것입니다. 제안 사항이 있으십니까?

답변

1

작업 취소가 더 자주 취소되었는지 확인해야합니다 (예 : -main 구현).

그 외에도 샘플러를 실행하여 그 시간 동안 무엇을하고 있는지 확인하십시오.

+0

답변 주셔서 감사하지만 "주"는 NSOperation이 취소되지 않았는지 확인하기 위해 "시작"후에 만 호출되므로 실제로 확인이 필요합니다. ? – Suny

+0

@Suny 그것은 모든 시간을 어떻게 잡느냐에 달려 있습니다. '-main' 검사는 작업이 완료되는 데 오랜 시간이 걸리며'-main'을 깨끗하게 종료 할 수 있습니다. – justin

관련 문제