일종의 계산을 수행하고 do-while 루프 내에있는 백그라운드 스레드에서 코드가 실행됩니다. 요구 사항의 일부 변경으로 인해 사용자에게 입력을 요구하는 UI를 표시해야합니다. 이 UI 코드는 주 스레드에서 수행해야하며 프롬프트가 입력 된 후에도 논리를 계속 진행해야합니다. 주 스레드에서 dispatch_async를 사용하면 UI가 표시 될 수 있지만 UI가 완료 될 때까지는 단계 -2가 계속되지 않아야합니다. 코드의 흐름을 깨고 단위를 블록으로 옮기지 않고 이것을 달성하는 가장 좋은 방법은 무엇입니까? 예를 들어흐름을 깨지 않고 백그라운드 스레드에서 UI를 표시합니다.
:
-(void) compute
{
do
{
//calculate some data
// Step -1...
...
// Step -2
...
...
} while(flag)
}
1 단계와 2 단계 사이에, 나는 프롬프트를 표시합니다. 그렇게하는 가장 좋은 방법은 무엇입니까? UI가 완료된 후 메인 스레드가 해고 될 뮤텍스를 사용하여 백그라운드 스레드를 차단하는 것이 괜찮습니까?
을보십시오. – rmaddy