0
GWT가 실제로 단일 스레드라는 것을 알고 있지만 사용자 지연 명령을 사용하여 멀티 스레드 효과를 에뮬레이트하려고합니다. isBusy 부울 변수에 의해 제어되는 텍스트 애니메이션을 구현하려고합니다. 서버가 이미 응답했을 때 텍스트 조작 (애니메이션 효과)이 isBusy가 false 값으로 실행됩니다. 그러나이 코드는 while 루프에 붙어있는 것처럼 보입니다.GWT 멀티 스레드 효과
loginButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
isBusy = true; // boolean
// Show animating effect...
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
while(isBusy == true) {
for (int i=0;i<3;i++) {
if (i==0) { loginButton.setText("."); }
if (i==1) { loginButton.setText(".."); }
if (i==2) { loginButton.setText("..."); }
}
}
}
});
loginService.getUser(usernameBox.getText(), passwordBox.getText(), new AsyncCallback<User>() {
@Override
public void onSuccess(User result) {
isBusy = false;
}
@Override
public void onFailure(Throwable caught) {
isBusy = false;
}
});
}
});
그것은 I는 RPC 서비스에서 설정 한 정적 부울 변수에 실행()의 반환 값을 매핑 그러나 열심히 onSuccess() 및 onFailure() 동안; 실행이 멈추지 않는 이유가 궁금합니다. – xybrek
내 경우에 작동합니다. – Stefan