public void InternalBlockUntilConnectedOrTimedOut() { long waitTimeMs = connectionTimeoutMs; while (!state.IsConnected() && (waitTimeMs > 0)) { CountdownEvent latch = new CountdownEvent(1); IWatcher tempWatcher = new TempWatcher(latch); state.AddParentWatcher(tempWatcher); long startTimeMs = (long)TimeSpan.FromTicks(System.DateTime.Now.Ticks).TotalMilliseconds; try { latch.Wait(TimeSpan.FromSeconds(1)); } finally { state.RemoveParentWatcher(tempWatcher); } long elapsed = (long)Math.Max(1, TimeSpan.FromTicks(System.DateTime.Now.Ticks).TotalMilliseconds - startTimeMs); waitTimeMs -= elapsed; } }
public void InternalBlockUntilConnectedOrTimedOut() { long waitTimeMs = connectionTimeoutMs; while ( !state.IsConnected() && (waitTimeMs > 0) ) { CountdownEvent latch = new CountdownEvent (1); IWatcher tempWatcher = new TempWatcher (latch); state.AddParentWatcher(tempWatcher); long startTimeMs = (long)TimeSpan.FromTicks(System.DateTime.Now.Ticks).TotalMilliseconds; try { latch.Wait(TimeSpan.FromSeconds(1)); } finally { state.RemoveParentWatcher(tempWatcher); } long elapsed = (long) Math.Max(1, TimeSpan.FromTicks(System.DateTime.Now.Ticks).TotalMilliseconds - startTimeMs); waitTimeMs -= elapsed; } }