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

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

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

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

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

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

  • 229614108 2015-07-23 03:02
    最佳回答

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

    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题