Блок Ruby и незаключенные в скобки аргументы

Я бы попытался создать новый поток, используемый для задержки времени.

package sample;

import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;

public class Controller implements Runnable{


    private volatile boolean isRunning = false;
    private Thread timer;

    private int delay = 2000;

    @FXML
    private Label label;

    @FXML
    private Button button;


    private void start(){
        timer = new Thread(this, "timer");
        isRunning = true;
        timer.start();
    }

    private void stop(){
        isRunning = false;
    }

    private void interrupt(){
        isRunning = false;
        timer.interrupt();
    }

    @Override
    public void run() {
        int counter = 0;
        while (isRunning) {
            try {
                ++counter;
                String text = "MyText" + counter;
                Platform.runLater(() -> label.setText(text));

                if (counter == 5) {
                    stop();
                }


                Thread.currentThread().sleep(delay);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }
}

Важно обновить метку согласно Platform.runLater() - основной поток JavaFx является единственным потоком, которому разрешено обновлять объекты JavaFx.

9
задан niton 18 April 2015 в 11:55
поделиться

1 ответ

Это - потому что Вы звоните

pp x.map

и передача блока к стр (который игнорирует его),

Как объяснено в Программировании книга Ruby

Фигурные скобки имеют высокий приоритет; сделайте имеет низкий приоритет

Так, эффективно, фигурные скобки связывают с вызовом функции, самым близким к ним (x.map), тогда как делают связывает с самым далеким далеко (стр). Это немного упрощенно, но это должно объяснить эту ситуацию

14
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: