, 는 내 프로그램 루프 차례로while (true) 문을 iOS 프로그래밍에서 유효한 접근 방법으로 사용 하시겠습니까? 대물 C에서
doInitialize()
{
dispach_group_t loadDataGroup=dispatch_group_create();
dispatch_group_async(loadDataGroup,...get_global_queue(..),0),^{
renewauth();
}
dispatch_group_notify(loadDataGroup,...get_global_queue(..),0),^{
//Do other tasks once renew session has completed...
}
}
renewauth()
{
RenewAuthTokenInProgress=true;
startRenewThread();
**while (RenewAuthTokenInProgress);**
}
가 startRenewThread() 함수는 내부 dispatch_async 동작을 수행하는 동안 사용 기다려야 만들고있다. 그래서 renewAuth()를 기다려야합니다.
startRenewThread의 비동기 작업은 갱신이 완료되면 bool 변수를 업데이트합니다.
dispatch_groups 이외의 다른 방법을 사용하는 것이 더 좋습니까? 그리고 (참) 진술과 함께 다른 스레드를 기다리는 것이 좋습니까?
바쁜 대기는 끔찍한 생각입니다. 어쨌든 끝날 때까지 차단하려는 경우 왜 백그라운드에서이 갱신 기능을 실행합니까? – Thilo
그리고 비동기 경로로 가면'dispatch_groups'의 문제점은 무엇입니까? – Thilo
RenewAuthTokenInProgress가 잠시 동안 true로 유지된다고 가정하면 iPhone이 뜨거워 질 것입니다. 코어 중 하나를 100 % 실행합니다. 또한 배터리를 평평하게합니다. – TJA