ljx_5489464
ljx_csdn
2017-10-11 06:27

MFC多线程以条件变量或者是消息通知机制来执行子线程问题

20
  • 阻塞
  • 线程
  • 多线程
  • winpcap
  • mfc
在MFC做了一个简单的通过网卡发包收包(用的是WinPcap)并加以处理的小程序。一开始实现的方法是发包收包都各自创建了一个线程,每个线程里都有一个while死循环不停轮询看是否有包要发出或者接受处理,这样一运行就把CPU给占用完了,后来分别在两个线程的对应位置加了Sleep()函数,这样基本不会卡死了,但是感觉效果还是不好。现在想实现的是通过条件变量或者是消息通知这样类似的机制,当发送的包或者接收的包不为空了,再给线程一个通知,告诉它该发送或者接收包了,这时线程才开始执行,否则让它为阻塞状态,不再占用CPU。
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答