[讨论]关于如何提高程序效率的问题
开始搞.NET有个把月了,现在在版主以及各位大侠的帮助下,第一个.Net程序基本写完了。写了大概有1500多行,心中所想的功能基本实现,但是还有些问题希望和各位讨论一下。就是关于程序执行效率的问题。
我的程序类似自定义了一类图元,然后通过各类事件让用户可以参数化修改图元。这个过程中,有时候参数修改较为复杂,我试了2类做法:
1. 把所有参数修改一次性全部重绘一次,对于未修改的参数,也重绘,只是图元不变化,但过程上看是重新赋值绘制了。这样的话,我就只需要做一次打开数据库的工作,完成所有操作。(我不知道这样说准确不准确,我把Dim DB As DataBase, Dim Tr as transaction,然后用tr做一些事叫做打开一次数据库)
2.我也试着把各个参数的修改定义了一个过程修改。这样可以通过不同参数变化调用不同过程修改图元。但是每个过程里面都有个打开数据库的过程。可以当修改参数较多的时候,就需要不断打开,关闭,又打开的过程。。。
不知道这两类做法那类比较好?或者还有更好的方法??
另外,为了响应自定义图元的一系列修改,我定义了很多事件,比如添加、双击、选择、取消选择、移动、复制、删除等等。可是我自己的程序也会有时候去添加、复制、删除图元。也会激发事件,于是我采用了一个全局变量Bool EventsLock,当我自己程序运行时,我把这个变量设为True,所有事件碰到这个略过,我的程序运行完后,再改回Fasle,事件函数才会响应。
这种做法可否有提高效率的作用。
各位,希望能把各位编程经历中,提高程序执行效率的好方法共享一下。不重代码,重思维,重方法!!
响应自定义图元的一系列修改?
可以试下Overrule
还有这个类? 额,那不是我最开始的思路都错了!!
这个Overrule是只能2010里面用吗?
没错
相关内容看kean专题的相应部分
以及我的相关帖
额~~,我想个问题,Overrule是不是就是在图面上把样子变化了,而实际在数据库里面还是原来的图元?
也就是说,如果我的CAD启动时后不加载我的程序,那么图元就会显示出它本来的样子了!是吧!?
没错,只是障眼法,哈哈 呵呵,又知道了点东西,以后需要障眼法的时候就知道怎么搞了!!谢谢版主!
不过我那个倒是不想用障眼法,要不然,别人不加载程序,就看不到正确的东西了!!
自定义图元最好用Arx实现
简单的可以考虑Overrule
用事件处理感觉不是很好
呵呵,Arx不会,从新开始太。。。而且要下好多的Vs对应版本什么的。我看到C++ 程序就~~
不过还好啦,我不是专业搞这个的,一个兴趣,做点小东西就自己用用,最多周边的人用用就好了!!
不过我最近从10版的net程序改到09版我都觉得有点郁闷了,我编的那个不通用。10用的好好的,09不能用,09用的好好的,10不能用。。杯具~~
页:
[1]