Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341347
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:33

不用多线程也可以同时收发,以前在 DOS 和 Windows 3.x 里面根本没有多线程,也可以编出同时收发的程序,但是用异步的方法就要用多线程。
串口处理函数或控件,在调用写串口的时候,都是把数据写在缓存里面后台发送,此时可以读串口,在读串口的时候,也是从缓存里面读取的,为了保证不间断,需要充分利用缓存空间,不能让读缓存满,也不能在连续的数据让写缓存空,并且要处理写缓存满的情况,程序需要在读和写之间来回快速切换。
在 Windows 3.x 的时候,API 函数是这么处理的,利用串口控件也可以这么处理。
Windows 95 以上版本的 API 函数改了,不这么简单了,M$不让不用多线程的程序获取好的性能,程序员被迫改用多线程和复杂的异步处理。但是 Windows 95 以上版本,仍然可以通过串口控件获得以前那种简单的处理方式,多数串口控件都是用控件内部的多线程异步处理和启用足够的读写缓存,提供简单的程序调用,让使用控件在不用多线程的条件下,也可以进行同时读写的工作。

--------------------next---------------------

阅读(1080) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~