Java не следует за кодом? [Дубликат]
This question already has an answer here:
Loop doesn't see value changed by other thread without a print statement 1 answerВот фрагмент кода, который, я думаю, не соответствует тому, что код должен делать:
public void updateTimeElapsed() {
timeElapsedLabel.setText("Time elapsed: " + ((System.nanoTime() - time) / Math.pow(10, 9)));
}
public void updateTimeElapsedIndefinitely() {
while (true) {
//System.out.println("Hi");
//TODO: Why this no work?
if (start) { System.out.println("Shoulda'"); updateTimeElapsed(); }
}
}
Если я прокомментирую
System.out.println("Hi")
Код видимо не работает. Если я раскомментирую это, тогда это произойдет!
Замечания: начало истинно, как только вы нажмете & s; чтобы начать игру. Тем не менее, метод вызывается в начале, так что "привет" должно отображаться много раз и бесконечно, пока я не нажму кнопку 's'; ключ.
Картинка говорит тысячу слов, поэтому я дам вам сотни картинок (видео), чтобы объяснить, что я имею в виду: https://dl.dropbox.com/u/2792692/CodeWeird.ogv
https://dl.dropbox.com/u/2792692/CodeWeird.wmv
Может кто-нибудь сказать мне, что происходит?