吴昵称 2015-07-23 02:06 采纳率: 20%
浏览 1903
已采纳

求助一个MFC多线程串口通信的问题!!!!

功能简述:通信采用的是modbus协议,该软件是作为从机,即主机给我的软件发送请求命令,我解析命令后,将要请求的数据发给主机。

我的策略:采用一个接收线程和一个发送线程,当接收线程接收到数据后发消息给主线程,主线程在消息响应函数中将接收线程的数据流进行了解析,每次会解析出好多条命令,然后根据每一天命令我开始组织要回复的数据,组织好一条数据后SetEvent,通知发送线程进行发送。

困惑的问题:
1.我的策略是否有问题?
2.我的容器里有好多条主机请求命令,循环取出一条命令后组织回复数据,然后组织好一条数据后SetEvent,通知发送线程进行发送,那如果主线程的时间片没有到,发送线程就不会被调用,那么就会进入下一个循环取命令然后组织回复数据,这个时候就会把上一条要回复的数据给覆盖掉了,怎么办?到底该是一个什么样的处理流程呢?新人困惑求高手解答
3.我没有c币了,不好意思

  • 写回答

4条回答 默认 最新

  • 229614108 2015-07-23 03:02
    关注

    没必要这么多线程吧,COM口的通讯速率和CPU处理速率是没法比的,直接一个进程接收然后处理发送。
    数据量实在是太大的话就这样处理,开启一条垃圾处理线程,用来处理已经结束线程的资源,接收线程接收到的数据new一块内存保存,
    然后在接收进程里面执行 beginthreadex开启一条线程,线程参数是
    new的那块地址,线程执行完后记得delete就可以了,记得把线程句柄保存交给垃圾处理线程。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失