VC编程建议
2009-10-08 10:54
218 查看
1、不要使用全局函数,应该代之以类的静态函数。
2、不要使用全局变量,如果必须使用,请定义一个全局结构,把这个全局变量放到结构里去。更好的方法是定义一个全局的单例。
3、MFC的界面组件没有考虑线程安全,因此在工作线程里不要直接操作操作界面组件。
如果需要更新界面,有两种方法
a、用mutex保护;
b、给界面发消息,在界面线程里更新。
推荐第二种。
4、不要随意开线程。要确保CreateThread返回的线程句柄在合适的时机CloseHandle。
5、尽量使用栈上的变量,如果使用了堆上变量,请确保它能在合适的时机得到释放。
因为栈上的变量不需要考虑释放内存,所以不用花大功夫考虑生命期。
不过现在的PC,动辄上G内存,要是有内存泄露,一时半会儿也不会死掉。
假设电脑有1G内存,我们的程序每秒钟泄露1k,那么可以差不多支持1百万秒,折合大概12天。
6、释放对象数组,要使用delete[]。
如果使用delete,虽然内存都会释放,但是只有第一个对象的析构函数被调用,其他对象都是直接被灭。
7、不要在意运行效率,要相信cpu厂商的实力 :)。作为软件人员,请记住开发效率和维护效率更重要。
8、不要在界面的消息处理函数里做长时间操作。
在消息处理函数里不要超过0.1秒,否则用户就会感觉到界面僵硬。
如果需要长时间操作,两种办法:
a、将长时间操作拆为多个步骤,用timer处理;
b、开工作线程。
2、不要使用全局变量,如果必须使用,请定义一个全局结构,把这个全局变量放到结构里去。更好的方法是定义一个全局的单例。
3、MFC的界面组件没有考虑线程安全,因此在工作线程里不要直接操作操作界面组件。
如果需要更新界面,有两种方法
a、用mutex保护;
b、给界面发消息,在界面线程里更新。
推荐第二种。
4、不要随意开线程。要确保CreateThread返回的线程句柄在合适的时机CloseHandle。
5、尽量使用栈上的变量,如果使用了堆上变量,请确保它能在合适的时机得到释放。
因为栈上的变量不需要考虑释放内存,所以不用花大功夫考虑生命期。
不过现在的PC,动辄上G内存,要是有内存泄露,一时半会儿也不会死掉。
假设电脑有1G内存,我们的程序每秒钟泄露1k,那么可以差不多支持1百万秒,折合大概12天。
6、释放对象数组,要使用delete[]。
如果使用delete,虽然内存都会释放,但是只有第一个对象的析构函数被调用,其他对象都是直接被灭。
7、不要在意运行效率,要相信cpu厂商的实力 :)。作为软件人员,请记住开发效率和维护效率更重要。
8、不要在界面的消息处理函数里做长时间操作。
在消息处理函数里不要超过0.1秒,否则用户就会感觉到界面僵硬。
如果需要长时间操作,两种办法:
a、将长时间操作拆为多个步骤,用timer处理;
b、开工作线程。
相关文章推荐
- 20条学习javascript的编程规范的建议
- 程序员:开始编程生涯的5个建议
- VC数据库编程 ADO操作Access
- VC 数据库编程 ADO
- VC数据库编程 调用ADO的常用方法
- VC++编程需要注意的地方(请大家积极回复)
- vc++字符串分割的经典编程
- VC++动态链接库编程之DLL木马
- 【VC编程】笔记2--SDK编程的模板程序/MFC消息映射机制的本质解析
- VC++动态链接库(DLL)编程深入浅出
- VC编程小技巧之框架窗口及其他
- VC下实现windows编程实现Socket通信
- VC++ ADO编程入门简介
- VC++消息钩子编程
- 肖锰:如何提高自己的编程能力----给大学生的一点建议
- 积累的VC编程小技巧之标题栏和菜单
- VC 单文档快捷键编程
- 实例解析IPv6下的VC网络编程
- 勿在浮沙筑高楼:给编程入门者的建议
- VC----编程基础