これが私がしなければならないことです。GCDを使用してdispatch_syncが最善の方法であることを願っています
Appdelegate の applicationDidBecomeActive コールバックに配置されている特定のクリティカル セクション コードがあります。
applicationDidBecomeActive が何回呼び出されても、1 回だけ呼び出されるように、dispatch_sync 呼び出し内にそのメソッドをまとめています。
- (void)applicationDidBecomeActive:(UIApplication *)application{
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"Thread created");
//crtical code
[self runCriticalSection];
});}
これは、dispatch_sync を使用して行う正しい方法ですか?