我有這個現有的定時器功能:如何實現無阻塞定時器與GWT
final Timer waveTimer = new Timer() {
@Override
public void run() {
double value = r.getByte(); // takes quite long to finish
wave.renderWaveOnFly(value);
}};
waveTimer.scheduleRepeating(50);
但是它的工作原理,用戶界面被「封殺」,並且用戶無法點擊,並在UI做任何事直到定時器完成時,部分UI調用waveTimer.cancel()
,我創建了另一個定時器,在10秒後取消該定時器,所以UI在此之前不可用。
有沒有一種方法來實現一個非阻塞計時器,使它暫停一段時間,也許只是爲了確保UI不被阻塞,用戶仍然可以在UI中執行某些操作。
我的意思是,仍然覺得用戶界面仍然有反應。
我不確定這個數字,但是就像每隔100毫秒就停一下,然後讓用戶界面讓路並在停頓後恢復100毫秒或類似的事情。我在想什麼方法來處理。
不應該在UI線程中做任何昂貴的操作!爲此使用一個單獨的線程。或者,如果不能避開,請顯示「正在加載...」/「請稍等...」屏幕,最好還有一個進度指示器。 – ppeterka
@ppeterka我希望我能做到這一點,但我的應用程序的功能是從Flash對象獲取的實時字節中呈現波形(當然用javascript包裝) – xybrek
看看http:// stackoverflow。 com/questions/2590850/threading-in-gwt-client – Kennet