3

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 を提供し続ける必要がありますか?

4

1 に答える 1