Что это значит, сигнализируется событие или нет?

#windows #events #signals

#Windows #Мероприятия #сигналы

Вопрос:

Особенно в Windows, верно ли, что поток завершится, если событие сигнализируется. Что это значит, когда сигнализируется событие?

Комментарии:

1. Возможно, вы путаете сигнализацию объекта события Windows с сигналом POSIX? Это совершенно разные вещи. Объект события — это объект синхронизации между потоками, что-то похожее на семафор, который вы можете получить и освободить («signal») таким же образом. Нет причин, по которым поток должен завершаться из-за этого.

2. @Damon, Завершатся ли вспомогательные потоки, если основной поток завершится?

3. Я собираюсь ответить «НЕТ», хотя правильным ответом было бы «ДА». Не полагайтесь на то, что это произойдет. Сделайте так, чтобы другие потоки завершались контролируемым, определенным образом. Подайте сигнал потокам и попросите их вернуться, не прерывайте их, дождитесь завершения работы ваших потоков и очистите выделенную вами память. Хотя обычно в этом нет необходимости, сделайте это в любом случае. Если у вас есть привычка делать все лениво, рано или поздно вы окажетесь в кошмаре отладки, как только столкнетесь с ситуацией, когда предположение «это работает в любом случае» не выполняется.

Ответ №1:

Прежде всего, вы должны понимать, что такое событие. Любое выполнение пользовательского интерфейса или программного действия может быть вызвано как событие. Например, при нажатии кнопки мыши или клавиши клавиатуры и т.д.

Теперь сигнализируется событие означает возникновение такого события.

Комментарии:

1. Хотя технически это верно, OP говорит о примитиве синхронизации, называемом «events» в Windows API , а не о программировании, управляемом событиями.