C28604

警告 C28604:避免使用超时为 0 的SMTO_ABORTIFHUNG调用 SendMessageTimeout

当应用程序使用SMTO_ABORTIFHUNG标志调用 SendMessageTimeout 且超时期为零时,代码分析工具将报告此警告。 以这种方式使用 SendMessageTimeout 可能会有问题,因为超时期限不起作用,并且调用被视为阻止调用。

为超时时段指定非零值。

示例

以下函数调用可能导致进程无法无限期响应。

fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd, 
WM_NULL, 
0,
0, 
SMTO_ABORTIFHUNG,
0,
&dwResult)); 

以下函数调用没有此问题。

fNeedsCallbackEvent = (0 != SendMessageTimeout(
_hwnd, 
WM_NULL, 
0,
0,
SMTO_ABORTIFHUNG,
1000,  
&dwResult));