C28648
предупреждение C28648: PulseEvent является ненадежной функцией
Поток, ожидающий объекта синхронизации, может быть мгновенно удален из состояния ожидания по APC в режиме ядра, а затем возвращается в состояние ожидания после завершения APC. Если вызов PulseEvent происходит в течение периода, когда поток был удален из состояния ожидания, поток не будет освобожден и будет "зависать" навсегда. Это связано с тем, что PulseEvent выпускает только те потоки, которые ждут в данный момент.
Некоторые из способов устранения использования PulseEvent:
Если нужно освободить только один из потоков, ожидающих события, и событие является событием ручного сброса, измените его на событие автоматического сброса и вызовите SetEvent вместо PulseEvent.
Если нужно освободить только один из потоков, ожидающих события, и событие является событием автоматического сброса, вызовите SetEvent вместо PulseEvent.
Если все потоки, ожидающие события, должны быть выпущены и событие является событием ручного сброса, измените код на использование другого типа объекта синхронизации (например, семафора).
Если все потоки, ожидающие события, должны быть выпущены и событие является событием автоматического сброса, вызовите SetEvent вместо PulseEvent (исходный вызов для PulseEvent выпускал только один поток в любом случае).