首页 文章

dispatch_after(...,dispatch_get_main_queue(),阻塞未在主线程上运行

提问于
浏览
0

在iOS 8.4.1 Cocoa Touch应用程序中,我有这样的代码:

dispatch_after(dispatch_time(...),dispatch_get_main_queue(),block);

我惊讶地发现'block'正在主线程以外的线程上运行 . 我之前的理解是在此上下文中使用dispatch_get_main_queue()可以保证块将在主线程上运行 . Apple文档声明,对于主队列,“任务在应用程序的主线程上串行执行”,所以我不明白这种行为与文档是如何一致的 . 有人可以解释这种行为,或者指向一些文件吗?谢谢 .

1 回答

  • 0

    呃,没关系,毕竟它是在主线上 . 我在另一个线程上查看一些记录的堆栈帧时被骗了 .

相关问题