2013-02-11 27 views
0

我將不得不使用Java SWT實現彈出窗口。 這些彈出窗口會在100ms動畫中彈出。 100ms是邊界,在其下面,用戶感覺到立即發生的動作。使用自己的線程來實現帶短動畫的彈出窗口?

現在的問題是:我應該使用自己的線程來做這個動畫嗎? 有人知道,本機彈出窗口是如何實現的?

例如:我可以調用睡眠,在UI線程上的動畫步驟之間,或者我可以提取睡眠的額外線程。

for(int i=0; i<height; i+=10){ 
    //change height here 
    Thread.sleep(10); //makes UI unresposible for 10 ms 
} 

問題是 - 在這麼短的時間內啃UI不負責嗎?還是應該在額外的線程上完成?

+0

你爲什麼不使用常規的彈出窗口,其是SWT的一部分..?您想要爲哪個組件彈出? – Sorceror 2013-02-11 12:07:58

+0

我在任何可能的地方使用原生UI小部件。不過,我需要某種嵌入式區域,它會彈出並移動其他GUI部件。那麼我的問題是什麼? – Skip 2013-02-11 13:17:58

+0

我只是不確定究竟是什麼,你試圖實現..你的問題是有點模糊.. – Sorceror 2013-02-11 14:12:03

回答

1

要回答你的問題..我真的取決於你的應用程序的需求。它總是非常好的建議,而不是在UI線程中執行任何長時間運行的進程(總是取決於「長」)。

無論如何,它不會讓您的GUI停留10毫秒,但完全是100毫秒。 GUI在SWT由readAndDispatch()方法驅動,所以直到新的呼叫時,GUI處於凍結狀態(這就是爲什麼你必須使用在首位display.syncExec()displayAsyncExec()方法)..

相關問題