主进程中添加任务到GCD的main queue会卡死,而如果用生成的queue却正常运行,原因暂时不明,贴上来记录下。
dispatch_queue_t squeue = dispatch_queue_create("squeue", NULL);
dispatch_sync(squeue, ^{
NSLog(@"Task 1-->%@", [NSThread currentThread]);
});
主进程中运行以上代码没问题,但是当squeue换成main queue时,就会卡死:
dispatch_queue_t squeue = dispatch_get_main_queue();
--------------------------------------------
问题已在stackoverflow解决。
因为所有code都运行在主队列中除非指定了其他queue,所以sync()本身也在主队列,那当然会卡死。另外说句还是老外认真一点,针对提问核心进行回答。墙内的都在贴网搜的解答。