質問

Is it possible to check how actually AutoResetEvent object was treated? Is it fired by timeout or by calling Set() from another method?

Here is my code.

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();
}
役に立ちましたか?

解決

WaitHandle::WaitOne Method (Int32)

Return Value Type: System::Boolean

true if the current instance receives a signal; otherwise, false.

So, false is returned after timeout.

他のヒント

Yes, check the return value

true if the current instance receives a signal; otherwise, false.

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top