Condividi tramite


C28604

avviso C28604: evitare di chiamare SendMessageTimeout con SMTO_ABORTIFHUNG con un timeout pari a 0

Lo strumento Analisi codice segnala questo avviso quando le applicazioni chiamano SendMessageTimeout con il flag SMTO_ABORTIFHUNG e un periodo di timeout pari a zero. L'uso di SendMessageTimeout in questo modo può essere problematico perché il periodo di timeout non ha alcun effetto e la chiamata viene considerata come una chiamata di blocco.

Specificare un valore diverso da zero per il periodo di timeout.

Esempio

La chiamata di funzione seguente può causare la mancata risposta illimitata del processo.

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

La chiamata di funzione seguente non presenta questo problema.

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