編程生活

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            113 隨筆 :: 0 文章 :: 18 評論 :: 0 Trackbacks
          我們知道,在SWT中,有兩條關于Dispose的法則:

          1。如果你創(chuàng)建了它,那么就dispose它。你應當釋放那些使用構造器創(chuàng)建了的SWT對象。

          2。dispose一個父組件會dispose掉所有的子組件。

          由 此可以得知,由于Color,Cursor,F(xiàn)ont,GC,Image,Printer,Region都是在DeviceData之上創(chuàng)建,所以如果使 用構造器的話,就必須要手工把這些資源dispose掉,而如果使用Font font = control.getFont ()這樣的方式的話,就不可以調用font.dispose()方法,因為它不是被我們創(chuàng)建的。

          還可以得知,因為Widget及其所有子類的構造器都需要一個父Widget作參數(常用的也就是Shell或者Composite),所以是不是得到這樣的結論:

          在RCP應用中,當程序關閉時,Display會被Dispose,那么最頂層的Shell也會被dispose,于是遞歸下來,所有的Widget也會被 dispose了?所以只需要對自己使用構造器創(chuàng)建的Color,Cursor,F(xiàn)ont,GC,Image,Printer,Region調用 Dispose方法就可以了.

          還有就是,項目中肯定要用到不計其數的image的,并且圖片會被重復使用,如此,最好用SWT提供的org.eclipse.jface.resource.ImageRegistry來管理.
          posted on 2007-10-18 15:56 wilesun 閱讀(608) 評論(1)  編輯  收藏

          評論

          # re: 關于SWT資源的釋放 2008-01-14 15:45 Bourncanyon
          good  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 惠安县| 黎城县| 南和县| 大丰市| 色达县| 芦山县| 水富县| 临邑县| 额敏县| 波密县| 沐川县| 永安市| 营口市| 石阡县| 武平县| 镇远县| 溧水县| 剑阁县| 曲沃县| 老河口市| 迁西县| 红安县| 昭通市| 海淀区| 饶河县| 韶关市| 常宁市| 喀喇| 青龙| 马关县| 泾阳县| 惠水县| 六枝特区| 荥经县| 射洪县| 栖霞市| 绍兴县| 社会| 龙门县| 漳平市| 凤翔县|