Приложение Java становится медленным и занимает больше времени для обновления пользовательского интерфейса

Привет, у меня есть приложение, которое связывается с моим устройством через последовательный порт USB. Программа просто считывает данные, отправленные устройством, и выводит их на экран в пользовательском интерфейсе. Но когда я запускаю программу более 20 раз, пользовательский интерфейс начинает обновляться все медленнее и медленнее.

synchronized (lockObject) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                while (sessionStatus) { 
                    if (isSerialPortOpen() && !Thread.currentThread().isInterrupted()) {
                        createPacketAndWrite(getCurrentState());
                        try {
                            Thread.sleep(100); 
                            serialCommunication.readData();
                        } catch (IOException e) {
                            log.error("IO error while reading data from serialCommunication object" + e);
                        } catch (InterruptedException e) {
                            log.error("InterruptedException in startCommunication()" + e);
                            Thread.currentThread().interrupt();
                            break;
                        }
                    }
                }
            }
        };
        threadPool.execute(r);

После 50 раз приложение перестает отвечать, и я должен закрыть приложение. Но связь между устройством и ПК все еще продолжается.

У меня есть 2 экрана в этом приложении, на одном экране я читаю данные с устройства за определенный промежуток времени и затем перехожу к следующему экрану.

На первом экране находятся 3 кнопки, кнопка 1 инициирует связь с устройством, кнопка 2 запускает устройство в другом режиме, кнопка 3 останавливает связь и переходит к следующему экрану.

Кнопка 3 загрузит некоторые значения с устройства для отображения на втором экране.

На button1 я также загружаю следующие элементы, такие как таблица, график и т. Д., Но пустой. На button2 я загружаю данные в таблицу и значения графика.

Моему приложению требуется время для загрузки пользовательского интерфейса, 1) При нажатии кнопки 1. 2) При нажатии кнопки 3. 3) Когда загружается следующий, приложение загружает данные в графиках.

Кто-нибудь может мне помочь?

0 ответов

Другие вопросы по тегам