Безопасно ли, чтобы 2 или более потоков вызывали SetEvent Win32 API в одном и том же обработчике событий, не защищенном критической секцией?





Предполагая, что у вас есть несколько потоков, ожидающих одного и того же события, выполняющих один и тот же код.
нет ограничений на вызов SetEvent из нескольких потоков.
Это безопасно, но помните, что если один поток устанавливает его, а другой поток устанавливает его одновременно, вы не получите два уведомления, а только одно; поскольку второй изменил его с True на ... True. Если вас это беспокоит, используйте вместо этого семафоры.
взгляните на эту ссылку, она может решить ваши проблемы: blogs.msdn.com/oldnewthing/archive/2009/05/22/9634511.aspx