浏览 3537 次
锁定老帖子 主题:关于Dispose SWT资源的思考与疑问
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-19
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的,这种情况下,是在每一个用到Image的Widget上添加disposeListener好呢,还是最后在程序关闭的时候dispose所有的image? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |