Мне нравится простота invokeLater()
для отправки единиц работы в AWT EDT.Было бы неплохо иметь аналогичный механизм для отправки рабочих запросов в фоновый поток (такой как SwingWorker), но, насколько я понимаю, у них нет какого-либо механизма организации очередей и отправки событий, от которого зависит invokeLater ().
Итак, вместо этого я закончил тем, что предоставил моему фоновому потоку очередь блокировки, в которую другие потоки отправляют сообщения, и этот поток, по сути, запускает цикл приема, блокируя до прибытия сообщения.
Это, на самом деле, может быть именно так, как можно реализовать EDT-подобное поведение в фоновом потоке (или так?).С другой стороны, мне нравится простота потока, который просто вяло там болтается, обрабатывая «рабочие капли» всякий раз, когда они попадают к нему из какой-то невидимой очереди отправки событий в небе.Предоставляет ли Java способ создать такой «управляемый событиями рабочий поток»?Или очередь сообщений является правильным способом сделать это, в конце концов?Есть ли недостатки в технике передачи сообщений invokeLater()
?