作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个可能来自任何线程的回调。当我得到这个回调时,我想在主线程上执行某个任务。
我是否需要检查我是否已经在主线程上 - 或者在调用下面的代码之前不执行此检查是否会受到任何惩罚?
dispatch_async(dispatch_get_main_queue(), ^{
// do work here
});
最佳答案
不,你不需要检查你是否已经在主线程上。通过将 block 分派(dispatch)到主队列,您只是将 block 安排在主线程上串行执行,这发生在相应的运行循环运行时。
如果你已经在主线程上,行为是一样的:block被调度,在主线程的run loop运行时执行。
关于objective-c - GCD 在主线程中执行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662360/
有人可以向我澄清主线 DHT 规范中的声明吗? Upon inserting the first node into its routing table and when starting up th
我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。 我知道 Android 从大容量存储设备切换到 MTP 设备已经有一段时间了,并且找到了 source code for M
我是一名优秀的程序员,十分优秀!