多线程里的OutputDebugString

早就有人说过,调试多线程程序是挑战。今天我才算是对这句话有个比较深入的了解。事情这样的:我的程序有一个工作线程不停的读取USB口上传的数据,然后将读到的数据导出到文本文件。用户反映导出的数据有部分丢失,于是我就修改读取数据的方式,并在收到数据的时候做了前后两笔数据ID是否连续的判断,还把数据通过OutputDebugString输出到VC6的Debug输出窗口。奇怪的是,每当我调整VC IDE左边的Workspace窗口的大小后,ID就不连续了,用BusHound抓到的数据ID是连续的啊!

 

然后我猜测,这都是因为OutputDebugString这个函数惹的祸,调整Workspace窗口大小后,VC的Debug输出窗口也要重画嘛,既然是重画,就需要时间,而在等待重画的这段时间内,USB口上传的数据就像手中沙一样随时间流失了。So,虽然OutputDebugString简单方便,但也不是完全无毒无副作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值