常识是世界上最可怕的事情,在莱特兄弟之前,常识是人类是不能飞的,因为人类的密度大于空气的密度。
今天遇到一个问题就是常识性错误:
int nRet = SendMessage(pBlock);
if(nRet ==0)
{
nRet = pEvent->wait(&waittime);
if(nRet>0)
{
//未超时
}
else
{
//超时
}
}
看上去这样写,没有问题,其实并不是这样。我遇到的问题是在SendMessage和wait之间就已经收到信号了。
这个问题本身不是什么了不得的问题,但是凸现了思维的盲区,这个盲区就是常识。常常说最危险的地方就是最安全的地方。逻辑也是这样,最不容易犯错的地方往往容易出错,引以为戒。