MySynchManager
类有一个共享实例。
类中的功能之一MySynchManager
是
- (void)uploadSession:(NSString *)sessionId {
// run the upload process on a separate thread to not to block the main thread for user interaction
// process upload data in serial Queue
NSLog(@"Inside uploadSession");
if (!_serialQueue) {
NSLog(@"uploadSession, _serialQueue is NOT ACTIVE");
[self setRunLoopStarted:FALSE];
_serialQueue = dispatch_queue_create("sessionUploadQueue", NULL);
dispatch_async(_serialQueue, ^{
[[MySyncManager sharedInstance] dispatchSession:sessionId];
});
}
else {
//[self setRunLoopStarted:FALSE];
dispatch_async(_serialQueue, ^{
[self dispatchSession:sessionId];
});
NSLog(@"Adding block to the dispatch queue is complete");
}
}
uploadSession:@"session"
正在从视图控制器调用。
我面临的问题是有时会dispatchSession
调用存在的代码,但有时不会调用块。我只在打印块后观察日志打印语句。
你们中的任何人都可以解释这背后的原因吗?