检查两个NSOperationQueue是否完成调用endBackgroundTask来停止后台任务模式

在我的应用程序中,我有一些NSOperation从一个在线数据库更新一些核心数据元素,有时更新需要一些分钟,当iPhone的屏幕locking,应用程序进入后台模式,并停止此更新,所以我有重新打开应用程序继续更新,所以我已经问了一些在这之前,所以我收到了这个正确的答案:

- (void)someMethodToKeepRunningInBackground { UIBackgroundTaskIdentifier taskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^(void) { // Uh-oh - we took too long. Stop task. }]; // Perform task here CheckForUpdate *checkUpdate = [[CheckForUpdate alloc] init]; [sectionCheckUpdateQueue addOperation:checkUpdate]; if (taskId != UIBackgroundTaskInvalid) { [[UIApplication sharedApplication] endBackgroundTask:taskId]; } } 

问题是,我有更多的NSOperationQueue运行来执行更新,我上面写的sectionCheckUpdateQueue,如果发现更新日程安排更NSOperation其他NSOperationQueue,所以我不能调用这个:

 endBackgroundTask:taskId 

因为我不知道什么时候这个NSOperationQueue完成,所以我的问题是,所以如何我可以检测到当这个NSOperationQueue完成,所以调用endBacgkround:taskId?