我可以在swingUtilities.invokeLater中添加1个以上的线程吗?

时间:2018-04-23 21:22:26

标签: java multithreading swing swingutilities

我不知道如何精确地使用SwingUtilities.invokeLater,但在我的应用程序中,面板运行在不同的Runnables中,swingUtilities.invokeLater接受参数中的Runnables,但是如果我放了一个线程在swingUtilities.invokeLater的线程中,它将在" SwingUtilities线程安全的AWT / Swing概念中运行"?我可以放一个以上的线程吗?因为我有一个面板/线程在1 JFrame内运行。

1 个答案:

答案 0 :(得分:0)

在Swing中,只有1个线程(事件调度线程)可以对用户界面(整个应用程序的所有Swing UI组件)进行更新。使用传递给invokeLater(或invokeAndWait)方法的runnable执行用户界面上的所有更新。

不要在此runnable中执行计算/其他任务,因为这会减慢/阻止您的用户界面。

没有最大数量的runnable可以传递给SwingUtilities方法。所有这些都由事件派发线程执行。