JavaFX stop () метод заморозки GUI - PullRequest
0 голосов
/ 19 мая 2019

У меня есть приложение, которое использует метод stop () для выполнения задач по очистке (закрытие потоков, освобождение ресурсов и т. Д.).Эта очистка инкапсулирована в один объект Task, и выполнение этой задачи связано с компонентами ProgressBar и Label, например, так (обратите внимание, что значение без заголовка получается из чтения файла конфигурации и просто означает, что пользователь решил запустить приложение безGUI, в данном случае он явно имеет значение false):

CompleteShutdownTask task = new CompleteShutdownTask();

    if (!headless)
    {
        ProgressBar progressBar = statusBar.getProgressBar();
        progressBar.progressProperty().unbind();
        progressBar.progressProperty().bind(task.progressProperty());

        Label progressLabel = statusBar.getProgressLabel();
        progressLabel.textProperty().unbind();
        progressLabel.textProperty().bind(task.messageProperty());
    }

Я знаю, что эта логика работает, потому что у меня также есть задача инициализации, привязанная к этим компонентам точно таким же образом, когда программа запускается, и это прекрасно работает,Моя проблема заключается в том, что задача работает нормально, но графический интерфейс становится полностью не отвечает во время выполнения метода stop ().У меня даже есть очень простой способ отключить кнопки, пока они работают, и даже если это не работает, GUI полностью зависает, пока выполняется stop ().

Это нормально для такого рода зависания графического интерфейса?в то время как метод stop () выполняется?

...