5

バックグラウンドで実行したいので、特定のタスク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 つあります。

  1. 何らかの処理が行われている間にアプリがバックグラウンドになった場合、メイン キューへの dispatch_async 呼び出しはどうなりますか?
  2. これは良いデザインですか?
4

1 に答える 1