編程生活

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            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  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 金门县| 壶关县| 红桥区| 韩城市| 永吉县| 宣化县| 吉首市| 平安县| 宁都县| 若尔盖县| 陵川县| 阿荣旗| 固安县| 长丰县| 句容市| 罗源县| 达拉特旗| 新绛县| 台南县| 浦北县| 株洲县| 庄河市| 东乡族自治县| 布尔津县| 沾益县| 河津市| 年辖:市辖区| 西宁市| 德化县| 观塘区| 金湖县| 洪洞县| 无棣县| 高台县| SHOW| 柳河县| 通化县| 福鼎市| 婺源县| 南川市| 思南县|