我编写多线程任务时,出现了以下问题,高手帮忙解决:
我在做抓包工具,想用一个线程专门负责抓包,可是主线程调用 AfxBeginThread(Cappacketthread,GetSafeHwnd());后需要WaitForSingleObject(m_eventEnd,INFINITE);来等待,否则生成的线程不工作。可是用wait等待后,主线程停止响应,好像全部操作都在抓包线程了,我试了好多遍,要是抓包线程很快结束(设置变量),主线程随即恢复正常!请高手赐教!(我不知道问题讲清楚没)[email protected]
QQ287562838
随时可以讨论!
我在做抓包工具,想用一个线程专门负责抓包,可是主线程调用 AfxBeginThread(Cappacketthread,GetSafeHwnd());后需要WaitForSingleObject(m_eventEnd,INFINITE);来等待,否则生成的线程不工作。可是用wait等待后,主线程停止响应,好像全部操作都在抓包线程了,我试了好多遍,要是抓包线程很快结束(设置变量),主线程随即恢复正常!请高手赐教!(我不知道问题讲清楚没)[email protected]
QQ287562838
随时可以讨论!
解决方案 »
- 请问怎么写注册COM组件的代码?
- 请教:我在 WIN32 APPLICATION 用 SetTimer 时,出现这样的错误,请各位大哥帮我看看!谢谢!
- 请问如何动态改变picture控件内的图像?不用dc,图像都在资源里面,请各位指点,谢谢.
- 高分求救!~~~~~关于我的毕业设计
- 能不能给个解压zip包的程序,能把里面的文件解压到某个目录下面,100分送上,谢谢了!!
- 各位大虾如何写一个dll望给我一个DEMO,越简单越好
- 难题:无纸化考试中,如何实现Word评分?
- UNICODE问题
- 文件如何传输的(在winsock中)原理????????
- 怎样得到user name?
- CString转CTime (碰到新问题)
- 怎样拦截消息? 急!!
意思就是当抓包线程没有退出时,主线程被挂起,当然就停止响应了,抓包线程启动后,没有必要挂起主线程
WaitForSingleObject(m_eventEnd,INFINITE);但是如果主线程结束了,那么子线程也就结束了
同步,就是和多线程矛盾的东西,是对于多线程的单通道处理,所以,你通常在某个耗时较少的模块中同步处理,比如更新数据库\全程公用变量等,对于网络连接,这种可能需要超时控制的,通常以信号量控制,比如同时不超过20个线程,你可以用WaitForSingleObject(m_eventEnd,INFINITE)获取一个空闲的连接对象(对象个数是有限的),如果没有空闲,就等待,在线程中,对象是用结束,就设置为空闲--这是一种方法...