1.多线程部分用的是信号量控制;
2.数量统计用的是原子锁操作;
3.验证码输入用的是Event对象;
4.日志加了渲染颜色(可能有点BUG,不喜的删掉渲染即可)。
5.九宫格验证码部分用了易语言的表(Map),和节点(Node)结构,Map的K-V快速查找也不用我多说,缓存必备结构。
6.关于多线程方面,多线程建议大家用信号量和那个+1/-1是一个道理;
7.多线程操作的时候如果不稳定可以给程序加SEH保护、线程标记流程和LOG日志,线程抛出异常系统会通知然后获取线程ID,通过ID获取标记的流程执行到哪儿,更方便找出错误,关于C000005内存读写异常可以直接忽略。
8.可能很多新手都不是很懂编码这方面的知识,比如你读到的是一个UTF8字节流,你却是先到文本再UTF8转GB2312,这样就会影响程序性能,其实完全可以用UTF8转ANSI。

| 源码文件名 | 模块文件名 | |||
|---|---|---|---|---|
| BaiduTool.e |
|
|||
| 多线程测试.e |
|
|||
| 若快答题示例.e |
|
| 源码文件名 | 支持库文件名 | 支持库标识 |
|---|---|---|
| BaiduTool.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
| 扩展界面支持库三 3.1 | {B6F7542F-B8FE-46a8-9605-98856A687097} | |
| 扩展界面支持库二 2.0 | AF6AD80AA4244A59AFB3D83ECF5173CC | |
| 扩展界面支持库一 2.0 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
| 特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
| 多线程支持库 2.0 | 5F99C1642A2F4e03850721B4F5D7C3F8 | |
| 互联网支持库 2.0 | 707ca37322474f6ca841f0e224f4b620 | |
| 数据结构支持库 2.0 | 0AFF5F28B2CB42ce906AA27D6E485457 | |
| 多线程模块.e | 系统核心支持库 5.3 | d09f2340818511d396f6aaf844c7e325 |
| 特殊功能支持库 3.1 | A512548E76954B6E92C21055517615B0 | |
| 多线程支持库 2.0 | 5F99C1642A2F4e03850721B4F5D7C3F8 | |
| 多线程测试.e | 系统核心支持库 5.0 | d09f2340818511d396f6aaf844c7e325 |
| 扩展界面支持库一 2.0 | 27bb20fdd3e145e4bee3db39ddd6e64c | |
| 互联网支持库 2.0 | 707ca37322474f6ca841f0e224f4b620 | |
| 多线程支持库 2.0 | 5F99C1642A2F4e03850721B4F5D7C3F8 | |
| 模块.e | 系统核心支持库 5.0 | d09f2340818511d396f6aaf844c7e325 |
| XML解析支持库 2.2 | BE2297B7415349c8A55BC9DFEB6DD11A | |
| 若快答题示例.e | 系统核心支持库 5.0 | d09f2340818511d396f6aaf844c7e325 |
| 应用接口支持库 3.0 | F7FC1AE45C5C4758AF03EF19F18A395D | |
| 互联网支持库 2.0 | 707ca37322474f6ca841f0e224f4b620 |
