編程生活

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            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 閱讀(609) 評論(1)  編輯  收藏

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 商河县| 长宁县| 甘肃省| 黄浦区| 苏尼特左旗| 土默特左旗| 岳普湖县| 上虞市| 汉源县| 赤水市| 沐川县| 岳阳县| 汉阴县| 贵德县| 云龙县| 邻水| 新安县| 乐清市| 神池县| 琼中| 资兴市| 汝州市| 云和县| 沾益县| 浦东新区| 时尚| 花垣县| 柞水县| 泗阳县| 江北区| 瓦房店市| 凭祥市| 左云县| 株洲市| 红原县| 黄龙县| 海淀区| 秀山| 喀什市| 普洱| 神木县|