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;
}
});
}
});
它工作正常但是我在executeSuccess()和onFailure()期間將execute()返回值映射到由RPC服務設置的靜態布爾變量。我想知道爲什麼執行沒有停止。 – xybrek
適用於我的情況 – Stefan