如果使用以下功能运行同步块:dispatch_sync
使用从应用程序中检索到的队列dispatch_get_main_queue()
挂起并且该块未执行,而如果我通过从获得的队列:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
它可以正常工作。
dispatch_queue_t q;
q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//q = dispatch_get_main_queue(); //If uncommented the app hang
dispatch_sync(q , ^{
NSLog(@".");
});
为什么使用从dispatch_get_main_queue()
导致应用程序挂起并且块没有被执行的队列?