문제

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