- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 winsocket异步模型--select模式介绍
winsocket创建的套接字默认都是阻塞的,阻塞的意思其实很简单,就是不到黄河不死心的工作方式,譬如我们现在要从这个socket recv数据,如果这个时候没有数据可读或者不可读,那它就会等在那,recv下面的代码也不会执行,直到有数据可读; winsocket提供了系统调用,可以设置socket的模式为非阻塞,很简单 unsigned long on=1; ioctlsocket(m_
2014-07-02 10:38:35 2696
原创 定位CPU高的方法
CPU占用高,最常见的原因是死循环或者类死循环的操作,如果要逐一排查代码,费时费力,可以先用工具 工具1.windbg,windows出品的牛刀一枚 以管理员运行windbg,File->Attach to Process !runaway //会显示每个线程的CPU占用时间(user mode),里面Time值最大的就是CPU占用最高的线程 ~*kb //显示线程的cal
2014-07-02 10:36:12 1106
原创 CFileDialog文件过滤的奇葩行为
CFileDialog是MFC提供文件打开保存对话框,其中用的最多的可能就是文件的过滤,21世纪的UI方向是让用户只见可见的, CFileDialog对于过滤包装的还是很方便的, [code] LPCTSTR lpszFilter = _T("可执行Files(*.exe)|*.exe|All Files(*.*)|*.*||"); CFileDialog fileDlg(TRUE,NU
2014-07-02 10:34:15 4051
原创 MFC消息截获之pretranslatemessage
前几天,查了一个batch的问题,问题大致是这样,父窗口消息一个鼠标消息,弹出一个模态框,CPU负荷就飚升到100%(双核就是50%),非常怪异,用windbg,分析哪个线程占用CPU,定位到鼠标响应函数,也就是弹出模态框的函数,windbg提供的信息有限,只能自己分析,经过各种尝试,发现与模态框里面的控件无关,所以应该还是父窗口的问题,仔细看了下父窗口的代码,发现父窗口为了截获F1按下的消息,而
2014-07-02 10:32:29 4973
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人