Я использую SwingWorkers, чтобы сделать мой GUI отзывчивым.Но я не могу понять следующее: у меня есть удаленный метод, который я хочу вызвать из GUI, когда пользователь нажимает кнопку.У меня есть внутреннее действие кнопки (сокращение от представления проблемы):
//in action of button
SwingWorker worker = new SwingWorker<boolean,Void>(){
@Override
public boolean doInBackground(){
return call_remote_method_here();
}
};
worker.execute();
//some other code
Моя проблема в том, что, хотя графический интерфейс кажется отзывчивым, реальные вызовы удаленного метода являются последовательными и не параллельными.Я заметил это в сетевых следах и подумал, что метод блокирует.Но потом я увидел в следах, что SwingWorkers, кажется, работают последовательно.От
log 2010-09-06 16: 58: 22,962 [ SwingWorker-pool-4-thread-1 ] DEBUG -> Первый удаленный вызов метода
Я получаю ответ, а затемработает второй работник Swing
2010-09-06 16: 58: 23,227 [ SwingWorker-pool-4-thread-1 ] DEBUG -> Второй удаленный вызов метода
Почему это происходит?Я думал, что это случайное чередование, но я заметил, что 2 экземпляра имеют одинаковое имя?Рабочие качели объединены?Это случайное поведение?Разве я не вижу 2 одновременных звонка?Если они используются повторно, могу ли я что-то сделать для одновременных вызовов, а не для парализма?
Спасибо