У меня есть SwingWorker
актер, который вычисляет график для отображения из объекта параметров, который он получает; затем рисует график в ветке EDT. Некоторые элементы графического интерфейса могут изменять параметры этого графика. Когда они меняются, я создаю новый объект параметра и отправляю его работнику.
Пока это работает.
Теперь при перемещении ползунка создается множество событий, которые помещаются в очередь в почтовом ящике работника. Но мне нужно рассчитать график только для самого последнего набора параметров. Есть ли способ удалить все сообщения из почтового ящика; оставить последний и обработать только его?
В настоящее время код выглядит так
val worker = new SwingWorker {
def act() {
while (true) {
receive {
case params: ExperimentParameters => {
//somehow expensive
val result = RunExperiments.generateExperimentData(params)
Swing.onEDT{ GuiElement.redrawWith(result) }
}
}
}
}
}
not-last
/last
. - person Jus12   schedule 07.10.2011