Joe*_*123 0 java swing multithreading thread-safety swingworker
我有一个swing类,运行Thread类来执行特定的Job.我需要在某个时刻停止正在运行的线程.所以我在线程中放置一个布尔值,当我将其设置为true时,线程将被停止.
问题是该线程需要一些时间来完成它正在进行的内部工作.
我需要阻止用户在GUI上执行任何操作,直到线程完成.我尝试了类似setEnabled(false)的东西但是应用程序冻结了,并且在线程停止之前不会更改GUI.我也尝试在另一个线程中更新GUI,但这也不起作用.
有没有办法更新GUI或使应用程序像禁用,而停止线程的延迟是finsihed.
谢谢
更好地使用SwingWorker:
button.setEnabled(false);
...
@Override
protected String doInBackground() throws Exception {
// process related code
return "";
}
@Override
protected void done() {
button.setEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
该done()
方法将完成的处理之后被调用doInBackground
()方法.
归档时间: |
|
查看次数: |
1653 次 |
最近记录: |