Я создаю приложение Java, и я реализовал пользовательские прослушиватели и события. Теперь проблема заключается в том, что существует много событий и прослушивателей, а поток графического интерфейса приложения блокируется, пока прослушиватели обрабатывают события. Можно ли решить эту проблему с помощью потока диспетчеризации событий? Если да, то как?
Код для слушателей:
public class ProjectChangeObserver
{
private List<ProjectChangeListener> listeners = new ArrayList<ProjectChangeListener>();
public void addProjectChangeListener(ProjectChangeListener l)
{
listeners.add(l);
}
public void removeProjectChangeListener(ProjectChangeListener l)
{
listeners.remove(l);
}
public void removeAllProjectChangeListeners()
{
listeners.clear();
}
public void fireProjectChange(ProjectChangeEvent e)
{
if(listeners.size() > 0)
{
ArrayList<ProjectChangeListener> safeCopy = new ArrayList<ProjectChangeListener>(listeners);
for (ProjectChangeListener cl : safeCopy ) {
cl.onProjectChange(e);
}
}
}
}