串口通信中多线程的问题?倾家荡产,分数全部送上

jolipher 2000-11-02 10:44:00
我在程序员大本营 找到 VC++ ->VC源码集合 ->其他处理->A communication class for serail port,做串口通信这个类总的来说不错,但是发现了一点问题,我无法解决,希望得到各位帮助。
我在工程里通过初始一个对话框来初始化4个串口,当然有两个未用,显灰。这是对的,可是我关闭对话框后重新再开启对话框,这时串口的初始化就有问题了,4个全部显灰,这肯定是不对的。我跟踪发现,第二次初始化的时候,调用的CREATEFILE函数返回无效的句柄,导致创建无效。而我在关闭对话框的时候,各个串口已经全部关闭,不存在串口被占用的问题。我怀疑是工作线程在搞鬼,因为如果将这个对话框直接做一个应用(进程)的话,关闭再开就不会有这个问题。但是究竟在哪里出的问题,我还是无法找到。
这是个不错的东东,如果有兴趣,希望一起研讨。
...全文
163 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jolipher 2000-11-03
  • 打赏
  • 举报
回复
大家快来看,12点之前给分
jolipher 2000-11-03
  • 打赏
  • 举报
回复
大家快来看,12点之前给分,答者有份。
jolipher 2000-11-02
  • 打赏
  • 举报
回复
dingsg的想法应该是对的!
对于这个操作硬件的类,我发现还有许多不稳定的地方,根本原因可能就是线程作的不大好。能力有限,我找不出毛病,只好另谋他途了。
dingsg 2000-11-02
  • 打赏
  • 举报
回复
我的分析:
这个例子是基于硬件基础的;
因此它的线程释放不会简单的因为程序的退出而完成!
我的观点:
在初始化时,已经是的某些硬件设备处于忙的状态,因此应该在程序结束时,重新对此端口""初始化"",是硬件设备空闲!

仅供参考!


zero100 2000-11-02
  • 打赏
  • 举报
回复
你的工作线程,都结束了
ps:随随便问一下!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧