基于MFC的多线程与串口通信
【摘要】本人结合研究生阶段所做的项目经验和相关参考书籍完成本文,本文基于MFC的基础上,简要阐述了多线程的概念、分类及其相关联的应用和优势,并且着重介绍其在串口通信中的应用,并附着曾经项目中的关键程序段,而且给予了相应的解释。
【关键词】计算机科学与技术;MFC;多线程;串口通信
随着信息技术的发展,更新更快更方便的通信方式才会满足大众口味,本文基于曾经参与的雷达模拟器项目的相关经验完成,该项目主要是实现在微机室中能够模拟海上航行工程中教练的与学员的船只之间的指挥、调度等通信过程,有着很大的实用价值。本项目用VC6.0开发,大致分为三部分即教练船,本船和操作舵,本文提取的是教练船与本船(即学员船)之间的通信部分,基于此基础上研究多线程技术在串口通信中的应用。
1.基于MFC的多线程
在Windows应用程序开发时, 有两种主要方法: 基于Windows API 的开发方法和基于Windows MFC 的开发方法。后者借助于类向导的帮助,简化了程序开发的过程并减少了开发的工作量和难度。本文研究的重点就是基于VC ++的MFC 多线程通信程序及其在串口通信中的应用。多线程应用程序比单线程应用程序要考虑更多的因素,但它有着明显的好处。在MFC类库中,提供了多线程编程的支持,基本原理与基于Win32 API 函数的设计一致,但由于MFC对同步对象作了封装,因此对用户编程实现来说更加方便。在MFC 中,线程分为两种:用户接口线程(User Interface Thread)和工作者线程(Worker T hread)。前者常用来独立地处理用户输入和响应用户事件。后者常用于任务处理不要求用户输入的后台任务。
2.多线程在串口通信中的应用
串口1/0通常是很费时的操作,如果程序需要实时监听串口同时又想要避免很长时间等待1/0操作结束,可以利用多线程技术。下面是简单的串口通信程序,并创建工作线程分别监视串口。
2.1 串口通信类
程序专门建立了一个串口通信类class CMyCOM
{Public:CMyCOM(Cstring set[6]); ~CMyCOM();BOOL InCOM();BOOL OpCoM();
DWORD WrCOM(char*buf,DWORD dN);DWORD