本文继续上节文章介绍Subversion插件在Eclipse中是如何使用的,希望大家能学到更多知识,同时也请各位多提宝贵意见,以便共同进步。以下是介绍Subversion插件
【Displayhook销毁机制】
在Displaydevice中我们看了如下个hook接口:
- /** *Causestherunmethodoftherunnableto
- *beinvokedbytheuser-erfacethreadjustbeforethe
- *receiverisdisposed.
- */ publicvoiddisposeExec(Runnablerunnable){
- //注册用户自定义runnable在displayrelease时候回调此runnable
- 将runnable注册到disposeList
- }
- disposeList中线程会在displayrelease时候被如下:
- /***Releasesanyernalresourcesbacktotheoperating
- *systemandclearsallfieldsexceptthedevicehandle.
- */ protectedvoidrelease{……
- //会执行用户注册销毁线程
- (disposeList!=null){
- for(i=0;i (disposeList[i]!=null)disposeList[i].run;
- }}
- ……}
看来SWT并没有把事情做绝了还是给开发者留下条后路Display允许开发者注册个自定义线程hook到Displayrelease过程开发者可以用如下方式来确保开发者使用系统资源在Displayrelease时候被销毁:
- display.disposeExec(Runnable{
- publicvoidrun{//销毁系统资源逻辑代码
- image.dispose;
- ……}});
以上方式其实也是JFace中图片资源管理(ImageRegistry、ResourceManager)能够确保Displayrelease时候能够彻底释放被ImageRegistry托管图片资源.到这里回顾下SWT中资源释放途径吧:
1、覆写相应Component对应dispose思路方法这有别于Displayhook机制其能够在Display运行期间(未被release的前)就释放掉系统资源***方式。
2、利用Displayhook机制确保在Display被release时候能够销毁资源注意请不要过多依赖此方式很容易造成在Display被release的前已经发生了系统crash问题。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
【JFace中图片资源管理--ImageDescriptor】
前面我们已经见过SWT中Image和ImageData类型了在继续下面内容的前我们先看下在JFace中我们最常用来创建图片资源个工厂类:ImageDescriptor在ImageDescriptor类型介绍说明中告诉我们有两种使用ImageDescriptor创建图片方式分别通过createImage和createResource接口“TherearetwowaystogetanImagefromanImageDescriptor.ThemethodcreateImagewillalwaysaImagewhichmustbedisposedbythecaller.Alternatively,createResourcesasharedImage.WhenthecallerisdonewithanimageobtainedfromcreateResource,theymustcalldestroyResourceratherthandisposingtheImagedirectly.”分析如下:
首先看下createResource方式ImageDescriptor是种DeviceResourceDescriptor后者对外操作如下:
- /** *Createstheresourcedescribedbythisdescriptor */
- publicabstractObjectcreateResource(Devicedevice)throwsDeviceResourceException; /**
- *Undoeseverythingthatwasdonebyapreviouscalltocreate(...) */
- publicabstractvoiddestroyResource(ObjectpreviouslyCreatedObject);
本篇对Eclipse中如何使用Subversion插件已经全部介绍完毕。请关注本文的其他相关报道。
【编辑推荐】