【发布时间】:2011-06-22 16:22:44
【问题描述】:
Larry Osterman writes 关于在微软的代码中发现一个真正的错误,有问题的代码是
static DWORD WINAPI _PlayBeep(__in void* pv)
{
UNREFERENCED_PARAMETER(pv);
PlaySound(L".Default"NULL, SND_SYNC | SND_ALIAS);
return 0;
}
LRESULT WndProc(...)
{
:
:
case WM_KEYDOWN:
if (!_AcceptInputKeys(wParam, lParam))
{
QueueUserWorkItem(_PlayBeep, NULL, 0);
}
break;
}
拉里问:
鉴于代码的简单性 上面,为了得到正确的答案,它是 不足以说明有什么问题 代码(问题应该是 很明显)。你还需要 能够解释为什么这很糟糕 (换句话说,当你 这样做)。
最好的答案是在 cmets 中简洁是不够的,
大卫非常接近即将发生的事情 错了——现在想想 应用程序。
有人可以解释一下这段代码运行时发生了什么吗?
【问题讨论】:
标签: c++ multithreading visual-c++ asynchronous