线程无法结束

xiaobaohaohao 2008-12-30 03:35:47
是个文档视图应用程序,就启动了一个线程。结果程序结束不掉。怎么回事呀?在View的OnDestroy 中有结束线程的语句。
...全文
62 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobaohaohao 2008-12-31
  • 打赏
  • 举报
回复
屏蔽掉对串口的操作PurgeComm就好了。但这样行不行啊?
我还屏蔽掉了一句,SetCommMask .
用对话框做就没有问题。但在View/Doc中就有问题。
各位大虾,给点提示撒。
hai040 2008-12-30
  • 打赏
  • 举报
回复
看错了
会不会是死锁
hai040 2008-12-30
  • 打赏
  • 举报
回复
msdn:
BOOL PurgeComm(
HANDLE hFile,
DWORD dwFlags
);

Parameters
hFile
[in] Handle to the communications resource. The CreateFile function returns this handle.

_hCommHandle是什么?
ckt 2008-12-30
  • 打赏
  • 举报
回复
你可以先把PurgeComm屏蔽点,看能否正常关闭线程.
如果可以,就应该是PurgeComm函数的问题
xiaobaohaohao 2008-12-30
  • 打赏
  • 举报
回复
呵呵,4楼的主意不错,但PurgeComm只是清空串口,不应该死机。不是问题的根本。
呵呵,大侠帮忙。
rzhangww 2008-12-30
  • 打赏
  • 举报
回复
用这个结束进程就好了呀
EndThread();
::CloseHandle(_hCommHandle);
a293300202 2008-12-30
  • 打赏
  • 举报
回复
不懂啊。
xiaobaohaohao 2008-12-30
  • 打赏
  • 举报
回复
直接 Close ,呵呵
if(IsOpen())
{
PurgeComm(_hCommHandle, PURGE_TXABORT | PURGE_TXCLEAR);

EndThread();
::CloseHandle(_hCommHandle);
}
在运行PurgeComm时卡住了,还没EndThread().
大侠帮忙!
hai040 2008-12-30
  • 打赏
  • 举报
回复
返回什么值?

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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