내 iPhone 응용 프로그램에서 배경으로 작업을 수행하기 위해 만든 보조 스레드가 있고 몇 밀리 초마다보기가 업데이트되어야합니다 (메인 스레드가 아닌). 내 UIView 하위에 다음 코드를 시도 :UIView setNeedsDisplay 메인 스레드에 있지 않습니까?
시뮬레이터에 좋은 작품[self performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:NO];
그러나 내 장치에 매우 랙이있다. 내가 생각할 수있는 유일한 것은 메인 스레드가 UIKit의 일상적인 루틴에 빠져 있다는 것입니다. 즉, 내 setNeedsDisplay가 (약 1/2 초 후에) 길게 호출 된 것을 의미합니다. 다른 코드에서는 사용자 상호 작용에 기반하여 setNeedsDisplay를 즉시 호출하기 때문에 어떤 지연도없이 정상적으로 작동합니다. 보조 스레드에서 사용자 인터페이스 스레드보다 백엔드 계산이 적습니다. 이것은 내 응용 프로그램에서 아주 나쁜 시각 효과를 초래합니다.
그래서 요약하면이 문제를 어떻게 해결할 수 있습니까?
UPDATE :
은 그 자체 X 회 초를 새로 고칠 필요가있는 뷰를 말하는 나를위한 또 다른 방법이 있습니까? 그게 가능한 경우 나를 위해 더 나은 성능이 끝날 수 있습니다. 나는 성공없이 CADisplayLink를 시도했다. ...
무엇이 우선 순위가 좋을까요? 나는 0.1로 설정했지만 여전히 뒤떨어져있다. –
Nevermind는'[NSTimer scheduledTimerWithTimeInterval : 0.1 target : 셀렉터 : @selector (setNeedsDisplay) userInfo : nil repeats : YES];를 사용 했으므로 이제는 제대로 작동하는 것 같다. –