乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 111|回复: 8

[讨论]关于如何提高程序效率的问题

[复制链接]

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-13 13:07:00 | 显示全部楼层 |阅读模式
开始搞.NET有个把月了,现在在版主以及各位大侠的帮助下,第一个.Net程序基本写完了。
写了大概有1500多行,心中所想的功能基本实现,但是还有些问题希望和各位讨论一下。就是关于程序执行效率的问题。

我的程序类似自定义了一类图元,然后通过各类事件让用户可以参数化修改图元。这个过程中,有时候参数修改较为复杂,我试了2类做法:
1. 把所有参数修改一次性全部重绘一次,对于未修改的参数,也重绘,只是图元不变化,但过程上看是重新赋值绘制了。这样的话,我就只需要做一次打开数据库的工作,完成所有操作。(我不知道这样说准确不准确,我把Dim DB As DataBase, Dim Tr as transaction,然后用tr做一些事叫做打开一次数据库)
2.我也试着把各个参数的修改定义了一个过程修改。这样可以通过不同参数变化调用不同过程修改图元。但是每个过程里面都有个打开数据库的过程。可以当修改参数较多的时候,就需要不断打开,关闭,又打开的过程。。。
不知道这两类做法那类比较好?或者还有更好的方法??

另外,为了响应自定义图元的一系列修改,我定义了很多事件,比如添加、双击、选择、取消选择、移动、复制、删除等等。可是我自己的程序也会有时候去添加、复制、删除图元。也会激发事件,于是我采用了一个全局变量Bool EventsLock,当我自己程序运行时,我把这个变量设为True,所有事件碰到这个略过,我的程序运行完后,再改回Fasle,事件函数才会响应。
这种做法可否有提高效率的作用。

各位,希望能把各位编程经历中,提高程序执行效率的好方法共享一下。不重代码,重思维,重方法!!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-9-13 16:25:00 | 显示全部楼层
响应自定义图元的一系列修改?
可以试下Overrule
回复

使用道具 举报

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-13 20:49:00 | 显示全部楼层
还有这个类? 额,那不是我最开始的思路都错了!!
这个Overrule是只能2010里面用吗?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-9-13 20:50:00 | 显示全部楼层
没错
相关内容看kean专题的相应部分
以及我的相关帖
回复

使用道具 举报

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-13 20:56:00 | 显示全部楼层
额~~,我想个问题,Overrule是不是就是在图面上把样子变化了,而实际在数据库里面还是原来的图元?
也就是说,如果我的CAD启动时后不加载我的程序,那么图元就会显示出它本来的样子了!是吧!?
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-9-13 21:01:00 | 显示全部楼层
没错,只是障眼法,哈哈
回复

使用道具 举报

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-14 09:09:00 | 显示全部楼层
呵呵,又知道了点东西,以后需要障眼法的时候就知道怎么搞了!!谢谢版主!
不过我那个倒是不想用障眼法,要不然,别人不加载程序,就看不到正确的东西了!!
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2010-9-14 12:42:00 | 显示全部楼层
自定义图元最好用Arx实现
简单的可以考虑Overrule
用事件处理感觉不是很好
回复

使用道具 举报

14

主题

36

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2010-9-15 09:05:00 | 显示全部楼层
呵呵,Arx不会,从新开始太。。。而且要下好多的Vs对应版本什么的。我看到C++ 程序就~~
不过还好啦,我不是专业搞这个的,一个兴趣,做点小东西就自己用用,最多周边的人用用就好了!!

不过我最近从10版的net程序改到09版我都觉得有点郁闷了,我编的那个不通用。10用的好好的,09不能用,09用的好好的,10不能用。。杯具~~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 07:28 , Processed in 0.356049 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表