C28604

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

当应用程序调用 SendMessageTimeout 时,代码分析工具将报告此警告,SMTO_ABORTIFHUNG 标志和超时期限为零。 使用 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));