은 그냥 Apple docs:performSelector : onThread : 왜 좋지 않습니까?
주에서 발견 : 좋은 있지만 스레드 간의 가끔 통신을 위해, 당신은 스레드 사이의 시간 중요하거나 자주 통신을 위해
performSelector:onThread:withObject:waitUntilDone:
방법을 사용해서는 안됩니다.
왜 그렇습니까? "자주"는 얼마입니까?
나는 스레드가 많고 메인 스레드에서 많은 일들이 일어나고있다. (무거운 자바 스크립트, WebKit에서 빈번한 Ajax 쿼리). 요세미티에서 필자는 몇 가지 (예 : 10) 파일 다운로드 (NSURLDownload
)와 WebKit GUI (주 스레드에서 실행해야 함)를 조합하여 큰 문제를 경험하기 시작했습니다.
자바 스크립트로 많이로드되는 웹킷을 사용하면 파일 다운로드가 길게 "라이브"할 수 없습니다. 어떤 시점에서 앱이 종료 될 때까지 모든 네트워크 요청이 타임 아웃 (오류 -1001)을 반환하기 시작합니다.
그리고 널리는 performSelector:onThread:withObject:waitUntilDone:
을 사용합니다. UI에 다운로드 진행 상황을 알립니다. 이것은 초당 여러 번 발생할 수 있습니다. 문제가 될 수 있습니까?
P. 불행히도, 난 요세미티 문서에 NSObject
의 설명서에 이러한 경고 ...
비록 아마도 애플 만이 줄 수는 없다, 이상하게도 ... 전체 소스 코드를 보여
몇 가지 지연을 이해할 수 있습니다. 하지만 내가 말했듯이 네트워크는 완전히 반응이 없습니다. 그래서 나는 또 다른 이유가있을 것이라고 생각했다. 어쩌면 요세미티 특유의 ... –