在次要线程上运行代码时,是否可以在主线程上运行?

10 浏览
0 Comments

在次要线程上运行代码时,是否可以在主线程上运行?

首先,这是一个关于Java的一般问题,而不是关于Android的问题!

我想知道如何在次要线程的上下文中在主线程上运行代码。例如:

new Thread(new Runnable() {
        public void run() {
            //计算出1000个小数位的π(需要一段时间!)
            //在主线程上打印结果
        }
    }).start();

就是这样的情况-我意识到我的例子有点不太好,因为在Java中你不需要在主线程中打印出东西,而且Swing也有事件队列-但是在背景线程的上下文中可能需要在主线程上运行某个Runnable的一般情况。

编辑:作为对比-这是我在Objective-C中如何做的:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0UL), ^{
    //在后台线程执行一些任务
    dispatch_async(dispatch_get_main_queue(), ^{
        //更新UI
    });
});

提前感谢!

0