編程生活

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

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

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

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

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

          在RCP應用中,當程序關閉時,Display會被Dispose,那么最頂層的Shell也會被dispose,于是遞歸下來,所有的Widget也會被 dispose了?所以只需要對自己使用構造器創建的Color,Cursor,Font,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  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 灵川县| 营口市| 保亭| 大余县| 宁波市| 米易县| 商洛市| 白河县| 杂多县| 加查县| 深圳市| 茌平县| 四子王旗| 汉寿县| 徐汇区| 客服| 巨野县| 阿巴嘎旗| 宾川县| 绥中县| 台江县| 同江市| 蒙山县| 阿鲁科尔沁旗| 泊头市| 浙江省| 兴安县| 格尔木市| 丹棱县| 元江| 佳木斯市| 娄底市| 府谷县| 太白县| 鹿泉市| 固安县| 罗平县| 隆回县| 金山区| 阿合奇县| 洛南县|