Объект AutoResetEvent, ждет 60 секунд ИЛИ событие

Я использую объект AutoResetEvent для блокировки потока на 60 секунд, но я хотел бы заблокировать его на 60 секунд или событие AutoResetEvent.set()

КОД :

global:
private readonly AutoResetEvent _signal = new AutoResetEvent(false);

blocking:
_signal.WaitOne(60000, true);

event to give signal 
_signal.Set();

но он всегда ждет целых 60 секунд! даже если я выпустил сигнал.


person Arrabi    schedule 09.02.2010    source источник
comment
Это невозможно, вы должны делать что-то неправильно в потоке, вызывающем Set().   -  person Hans Passant    schedule 09.02.2010


Ответы (1)


Вызов WaitOne() блокируется, поэтому ваш вызов Set() сработает только после истечения времени ожидания WaitOne(). Чтобы ждать меньше времени, вам нужно вызвать Set() из другого потока, чем тот, который ожидает.

Не совсем понятно, что вы пытаетесь сделать.

person Cory Charlton    schedule 09.02.2010