从辅助线程在主线程上运行代码?
2022-09-01 11:27:32
这是一个通用的Java问题,而不是Android问题!
我想知道如何从辅助线程的上下文中在主线程上运行代码。例如:
new Thread(new Runnable() {
public void run() {
//work out pi to 1,000 DP (takes a while!)
//print the result on the main thread
}
}).start();
这种事情 - 我意识到我的例子有点差,因为在Java中你不需要在主线程中打印出一些东西,而且Swing也有一个事件队列 - 但是你可能需要在后台线程的上下文中在主线程上运行Runnable的一般情况。
编辑:为了进行比较 - 这是我在Objective-C中的做法:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0UL), ^{
//do background thread stuff
dispatch_async(dispatch_get_main_queue(), ^{
//update UI
});
});
提前致谢!