9

是否可以检查AutoResetEvent对象的实际处理方式?它是由超时触发还是通过从另一个方法调用 Set() 触发的?

这是我的代码。

private AutoResetEvent autoResetEvent = new AutoResetEvent(false);
private int timeout = 30000;

public void SyncMethod()
{
    // some code before
    autoResetEvent.WaitOne(timeout);
    // if autoResetEvent called by timeout then { do some stuff } 
    // some code after
}
public void AsyncMethod()
{
    // some code before
    // ok I am done
    autoResetEvent.Set();
}
4

2 回答 2

14

WaitHandle::WaitOne 方法 (Int32)

返回值类型:System::Boolean

如果当前实例接收到信号,则为 true;否则为假。

因此,超时后返回 false。

于 2012-07-16T16:58:48.553 回答
3

是的,检查返回值

如果当前实例接收到信号,则为 true;否则为假。

http://msdn.microsoft.com/en-us/library/cc189907

于 2012-07-16T16:58:12.223 回答