Yes. If it is already signaled, there will be no expectations. It's fine.
In fact, if you look at the returned value of WaitOne(int)
, you will see that it returns true
if it is already set (or set before the timeout), and false
if it does not set the value within your timeout value.
This difference is sometimes important, so keep in mind that there is a return value.
source share