Я хочу проверить состояние Semaphore
, чтобы увидеть, сигнализировано ли оно или нет (поэтому, если t сигнализирован, я могу его освободить). Как я могу это сделать?
EDIT1:
У меня есть два потока, один будет ждать семафора, а другой должен освободить Semaphore
. Проблема в том, что второй поток может вызвать Release()
несколько раз, когда первый поток не ждет его. Таким образом, второй поток должен обнаружить, что если он вызывает Release()
, он генерирует любую ошибку или нет (он генерирует ошибку, если вы пытаетесь выпустить семафор, если никто не ждет на нем). Как я могу это сделать? Я знаю, что могу использовать флаг для этого, но он уродлив. Есть ли лучший способ?