【发布时间】:2015-05-14 00:39:55
【问题描述】:
所以我有一个方法:
Runnable task = new PostLoadRunnable(tool, archive);
SwingUtilities.invokeLater(task);
但我想让当前方法在任务线程完成之前不会继续。我想做类似join() 的事情,但我不知道该怎么做。 task.join() 和 Thread.task.join() 不起作用,Thread.currentThread().join() 没有给我任何选项来将其加入我想要的线程。
如何在任务完成之前停止该方法?
【问题讨论】:
-
如果要在完成后继续,为什么要使用线程?线程的思想是并行执行代码。对不起,平庸的英语。
-
Thread.currentThread.join不起作用,因为它指的是您调用 InvokeLater 的线程,而不是实际的背景/事件线程。SwingUtilities.invokeAndWait做你想做的事吗? -
你不想在这里等待线程完成 - 你想等待一些代码完成。
-
因为我还有其他线程必须先完成,然后我需要任务运行并完成,然后继续。
-
@wrschneider99 它说我无法从事件调度程序线程调用 invokeAndWait。我不太擅长线程,也不太了解。加入听起来像我想要的,但我不知道如何将它“附加”到任务和当前线程
标签: java multithreading