C28604

предупреждение C28604: избегайте вызова SendMessageTimeout с SMTO_ABORTIFHUNG с истечением времени ожидания 0

Средство анализа кода сообщает об этом предупреждении, когда приложения вызывают 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));