Jor*_*ley 4 java swing swingworker
我有一个类,它接受一些SwingWorkers并按特定顺序一次运行一个.我用a ReentrantLock来确保一次只运行一个worker.通常情况下,我总是在finally子句中解锁,但我需要它保持锁定,直到工人完成.
nextWorker.getPropertyChangeSupport().addPropertyChangeListener("state",
new PropertyChangeListener()
{
@Override
public void propertyChange(PropertyChangeEvent evt)
{
if (evt.getNewValue().equals(SwingWorker.StateValue.DONE))
{
executionLock.unlock();
}
}
});
Run Code Online (Sandbox Code Playgroud)
如果不是这种情况,是否保证调用done()?我宁愿不以这种方式调用解锁,因为它会在某种程度上违反封装.
由于项目的性质,这可能会在代码审查中出现.在这种情况下,拥有可验证的来源会很有帮助.到目前为止,我一直找不到一个.