SWT多线程注意事项
要在后臺線程里對前臺界面組件進行訪問的解決辦法:使用Display對象,Display對象主要負責管理事件循環(huán)和控制UI線程和其它線程之間的通信。
?
若要訪問UI界面上的對象必須通過UI線程來訪問,就是說在非UI線程中調(diào)用UI對象是不允許的,這是出于線程安全的考慮。
??? Display對象中負責調(diào)用其他線程的方法有以下3種:
1. asyncExec(Runnable runnable):異步啟動新的線程。UI線程不會等待runnable對象執(zhí)行結(jié)束后再繼續(xù)進行,就是說UI線程可以和runnable對象所在的線程同時運行。
2. syncExec(Runnable runnable):同步啟動新的線程。UI線程會等待runnable對象執(zhí)行結(jié)束后才會繼續(xù)進行。getSyncThread()方法可以獲得線程對象。當runnable對象是耗時大的線程時,盡量不要采用此種方式。
3. timerExec(int milliseconds, Runnable runnable):指定一段時間再啟動新的線程。用此方法創(chuàng)建的線程,將會在指定的時間后再啟動線程。與UI線程是異步的。
Display對象中,與UI線程相關的方法如下:
?1. 獲得當前的UI線程對象:getThread()
?2. 使UI線程處于休眠狀態(tài):sleep()
?3. 喚醒UI線程:wake()
轉(zhuǎn)載于:https://www.cnblogs.com/erweiyang/archive/2012/09/17/2688552.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的SWT多线程注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过udp及vlc传递视频流
- 下一篇: 2012 依赖注入框架