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