Как отладить проблему параллелизма в Java FX? - PullRequest
0 голосов
/ 22 октября 2018

Я программирую свое первое приложение с параллелизмом, и у меня есть ошибка, которую я не могу понять.Предполагается, что программа читает буфер и, если есть сообщение, что-то печатает в консоли, созданной с помощью TextArea.Проблема в том, что он печатает сообщение в консоли дважды.

У меня есть подсказка, что проблема заключается в параллельности, так как у меня та же программа без нее, и она работает нормально.Ошибка в сообщении, которое я пометил ** Это сообщение *.

public void ReadTask()
{
    Runnable task=() -> {
        runReadTask();
    };
Thread backgroundThread =new Thread(task);
backgroundThread.setDaemon(true);
backgroundThread.start();
}

public void runReadTask()
{
    int contador=0;
    while(true)
    {
        if(ComprobarBuffer(msg,can)==true)
        {
            contador=contador+1;
            final String cont="Mensaje " +contador;
            Platform.runLater(() -> {
                consola.appendText(cont+" Se ha leido un mensaje\n"); //**This message**
            });

        }
    }

}

public static boolean ComprobarBuffer(TPCANMsg msg,PCANBasic can)
{
boolean lectura;
if (can.Read(TPCANHandle.PCAN_USBBUS1, msg,null)==TPCANStatus.PCAN_ERROR_OK) 
{
lectura=true;
} else {
lectura=false;
}
return lectura;
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...