0
내 클래스의 코드입니다. 실행하면 배경색을 100ms 동안 주황색으로, 다시 빨간색으로, 다시 주황색으로, 그리고 나서 진한 파란색으로 바꿉니다.while 루프의 코드 블록은 코드에서 마지막까지 무시되지만 지연은 고려됩니다.
long startTime1 = System.currentTimeMillis();
while(System.currentTimeMillis() - startTime1 < 100)
{
Buildings.background.setColor(Color.orange);
}
while(System.currentTimeMillis() - startTime1 < 200)
{
Buildings.background.setColor(Color.red);
}
while(System.currentTimeMillis() - startTime1 < 300)
{
Buildings.background.setColor(Color.orange);
}
while(System.currentTimeMillis() - startTime1 < 400)
{
Buildings.background.setColor
(Color.blue.darker().darker());
}
코드를 실행 한 후에는 파란색으로 표시되지만 설정하려면 300ms가 걸립니다.
UI가 단일 스레드 인 것처럼 보입니다. 즉, 프로그램이 사용자 인터페이스와 관련된 아무 것도하지 않을 때까지 기다리면 루프가 기본 이벤트 처리 루프를 차단합니다. 이 모든 것을 비동기 적으로 처리 할 수있는 방법을 찾아야합니다. –