2011-02-02 2 views
0

Flite에서 특정 코드 행에 도달하면 해당 행을 통과하는 데 약 2 분이 소요되어 작성된 내용을 재생할 Text-To-Speech로 변환합니다.작업이 진행되는 동안 앱이 사용자 입력에 응답하지 않습니다. 이걸 막을 방법이 있습니까?

이 과정에서 앱은 Flite의 코드가 끝나면 사용자 입력에 대한 응답을 중지합니다. 분명히 이것은 불편입니다. 그것을 막을 수있는 방법이 있습니까?

답변

5

UI 실행 루프가 아닌 백그라운드 스레드에서 긴 처리를 수행해야합니다. 예를 들어, NSOperationQueue와 같이 완료 콜백을 사용하면 처리가 완료 될 때 UI에 알릴 수 있습니다.

+0

그러면 처리 속도가 조금 느려 집니까? – Andrew

+0

@Andrew : 속도는 UI 스레드, 백그라운드 스레드 또는 다른 응용 프로그램의 진행 상황에 따라 다릅니다. iOS는 멀티 태스킹 운영 체제이지만 현재는 단일 프로세서에서 실행되므로 모든 것이 하나의 리소스를 공유해야합니다. – hotpaw2

관련 문제