使线程在 EDT 中的非 EDT(事件调度线程)线程上运行
我有一个在 EDT 上运行的方法,我想让它在新的(非 EDT)线程上执行某些操作。我当前的代码如下:
@Override
public void actionPerformed(ActionEvent arg0) {
//gathering parameters from GUI
//below code I want to run in new Thread and then kill this thread/(close the JFrame)
new GameInitializer(userName, player, Constants.BLIND_STRUCTURE_FILES.get(blindStructure), handState);
}
I have a method running on the EDT and within that I want to make it execute something on a new (non EDT) thread. My current code is follows:
@Override
public void actionPerformed(ActionEvent arg0) {
//gathering parameters from GUI
//below code I want to run in new Thread and then kill this thread/(close the JFrame)
new GameInitializer(userName, player, Constants.BLIND_STRUCTURE_FILES.get(blindStructure), handState);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
SwingWorker
在 EDT 之外的工作线程上执行任务。例如,
无论你怎么称呼它:
You can use
SwingWorker
to undertake a task on a worker thread off the EDT.E.g.
Then wherever you call it:
您可以创建并启动一个新的 Java 线程,该线程从 EDT 线程内执行您的方法:
You can create and start a new Java Thread that executes your method from within the EDT thread :