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