バックグラウンドで実行したいので、特定のタスクUIBackgroundTaskIdentifier
を実行しています。私のコードは次のようになります。
-(void) function
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
UIBackgroundTaskIdentifier BGIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{}];
// some processing
dispatch_async(dispatch_get_main_queue(), ^{
// some UI stuff
});
// some processing again
dispatch_async(dispatch_get_main_queue(), ^{
// some UI stuff again
});
[[UIApplication sharedApplication] endBackgroundTask:BGIdentifier];
});
}
そこで、質問が 2 つあります。
- 何らかの処理が行われている間にアプリがバックグラウンドになった場合、メイン キューへの dispatch_async 呼び出しはどうなりますか?
- これは良いデザインですか?