我在 Android 平台上使用 libDispatch (GCD) 开源。因此,大多数复杂耗时的任务都是通过 NDK 完成的(我使用的是 libDispatch)。
对于某些调用,我使用的是 dispatch_async(get_main_queue)...这就是问题所在...我能够在并发队列中运行任务,但不能在主队列中运行。因为这需要调用 dispatch_main() ,我们不能在这里做,因为在这种情况下 Java 线程将被阻塞。那么,是否可以在某个辅助线程上运行 Java UI 并在此处挂钩 dispatch_main() 来为 dispatch_main_queue 提供服务?或者:我是否需要通过 JNI 继续从 JAva 主 UI 线程提供 main_queue 服务?