Compartilhar via


C28604

Aviso C28604: evite chamar SendMessageTimeout com SMTO_ABORTIFHUNG com um tempo limite de 0

A ferramenta Análise de Código relata esse aviso quando os aplicativos chamam SendMessageTimeout com o sinalizador SMTO_ABORTIFHUNG e um período de tempo limite de zero. Usar SendMessageTimeout dessa forma pode ser problemático porque o período de tempo limite não tem efeito e a chamada é tratada como uma chamada de bloqueio.

Especifique um valor diferente de zero para o período de tempo limite.

Exemplo

A chamada de função a seguir pode fazer com que o processo não responda indefinidamente.

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

A chamada de função a seguir não tem esse problema.

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