Check AutoResetEvent state
Asked Answered
K

2

10

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();
}
Krafftebing answered 16/7, 2012 at 16:53 Comment(0)
M
15

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.

Monoxide answered 16/7, 2012 at 16:58 Comment(0)
S
3

Yes, check the return value

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

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

Spieler answered 16/7, 2012 at 16:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.