Я смущен о том, как продолжить писать свою программу.Запустите Thread in JavafX Service
В основном, он подключается к нескольким последовательным устройствам, а затем обновляет приложение javafX на основе ответов от устройств (сначала мне нужно отправить сообщение на устройство). Так что я сделал, это создать поток для запуска в потоке службы, чтобы моя программа не замерзала, и поток мог приостановиться до тех пор, пока сообщение не будет прочитано (есть задержка между отправкой и получением сообщения через последовательное устройство).
service = new Service() {
@Override
protected Task<String> createTask() {
return new Task<String>(){
@Override
protected String call() throws Exception {
new Thread(thread).start();
return null;
}
};
}
};
Где нить выполняет какой-то цикл, непрерывно отправляя и читая сообщения.
@Override
public synchronized void run() {
while(serialOn && isRunning){
sendMessages();
}
}
public synchronized void sendMessages(){
sendSerial1();
this.wait();
sendSerial2();
this.wait();
}
public synchronized void readMessage1(){ // same readMessage2 for the sendSerial2()
getMessage(); // updates variables that are bound to the Javafx App
this.notify();
}
Но, я думаю, что обслуживание заканчивается (то есть успех или неудача), прежде чем это событие начинает серийный поток. Но я хочу, чтобы служба продолжала работать, пока программа отправляет и получает сообщения.
Сообщите мне, если вам нужно больше кода, оно немного длиннее и требует запуска последовательных устройств, но я могу включить его здесь, если это затрудняет понимание вопроса.
Отлично. Спасибо за помощь!! – artyfrost