2011-12-09 6 views
0

클래스가 있고 classMain이이 클래스의 객체라고 가정 해 봅시다. 이제이 클래스는 인스턴스 메서드 - performAction. 그래서 일반적으로 방법을 실행하는 데, 내가 할 것 :NSOperation 및 메소드로 클래스 실행

[classMain performAction] 

을 지금은이를 실행 NSOperationQueue을 사용하려는 경우, 나는 할 것이다 :

NSOperationqueue *opQueue = [[NSOperation alloc] init]; 
[opQueue addOperation: classMain]. 

을 실제로에 [classMain performAction] 추가되어 수행 할 작업 대기열, 그래서 내가 원하는 방법을 실행할 수 있습니까?

10.7에서 스레드를 실행하는 것이 더 좋습니다 (내 응용 프로그램이 잠기지 않음)?

답변

0

스레드를 실행하고 다른 스레드에서 다양한 작업을 실행하는 데는 여러 가지 방법이 있습니다. 당신은 도움이 자원 찾을 수 있습니다 :

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Multithreading/CreatingThreads/CreatingThreads.html

을 그리고 당신은 당신이 당신의 응용 프로그램을 잠그지 않고 백그라운드에서 실행하려는 간단한 작업이있는 경우, 당신은 가장 간단한 해결책은 performSelectorInBackground:withObject:을 사용하는 것을 알 수 있습니다.

어떤 접근법이 권장되는지는 실제로 특정 유스 케이스와 어떤 종류의 작업을 별도의 스레드로 오프로드하는지에 달려 있습니다.

+0

도움이됩니다. 감사. – ZionKing

+0

performSelectorInBackground : withObject :를 사용하여 하나의 문제. 그것은 무효로 돌아갑니다. 그렇다면 이것을 사용할 때 어떻게 반환 값을 얻을 수 있습니까? – ZionKing

관련 문제