【问题标题】:Check AutoResetEvent state检查 AutoResetEvent 状态
【发布时间】:2012-07-16 16:53:29
【问题描述】:

是否可以检查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();
}

【问题讨论】:

    标签: .net multithreading autoresetevent


    【解决方案1】:

    WaitHandle::WaitOne 方法 (Int32)

    返回值类型:System::Boolean

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

    所以,超时后返回false。

    【讨论】:

      【解决方案2】:

      是的,检查返回值

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-24
        • 2022-01-19
        • 2021-11-11
        相关资源
        最近更新 更多