大家帮忙啊,线程通信的问题,读名命名管道被阻塞以后...

bluemiles 2003-08-08 03:42:40
老板突发奇想,要把原来linux下的多线程程序移植到Windows下,指明要用VC做,这可苦了小弟我了。
我利用Windows命名管道进行线程通信,文档类的一个成员函数在无穷循环里ReadFile读取命名管道里的消息。这样的结果是该函数不可避免的要阻塞,问题就是,这个函数阻塞的时候,用户界面无法相应任何事件,调用view::onupdate以后窗口没有一点反应

各位大哥大姐,请问我应该怎么办才好呢??
帮忙阿~~~~
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluemiles 2003-08-26
  • 打赏
  • 举报
回复
overlapped?
确实有这样的设计方式,但是我不想写事件处理

现在使用了一个新的线程来处理,这样主线程就不会堵

不过根据msdn,还有一个方法,就是所谓的blocking hook,不知道是什么。msdn不是很推荐这个方法,推荐的是另开线程。
yinzhaohui 2003-08-26
  • 打赏
  • 举报
回复
1.使用异步
2.使用多线程
bluestar 2003-08-15
  • 打赏
  • 举报
回复
你用重叠IO异步方式读,调用ReadFile立即返回,读完后由Event通知你。

要么就是开线程只赌线程,不堵主线程。
mfc168 2003-08-15
  • 打赏
  • 举报
回复
gz
bluemiles 2003-08-15
  • 打赏
  • 举报
回复
o
cwanter 2003-08-08
  • 打赏
  • 举报
回复
那就建一个线程读~

15,471

社区成员

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

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