public bool ExitWait(string key, long timeout_ms = -1, int intensity_ms = 1) { TickTime start = TickTime.Now; if (!this.Contains(key)) { return(false); } if (!intensity_ms.InClosedInterval(1, int.MaxValue)) { intensity_ms = 1; } while (!this.Exit(key)) { if (timeout_ms > 0 && TickTime.Timeout(start, timeout_ms, TickTime.Unit.ms)) { return(false); } try { Thread.Sleep(intensity_ms); } catch// (Exception ex) { //Exceptions.Write(ex); return(false); } } return(true); }
public bool EnterWait(long timeout_ms = -1, int intensity_ms = 1) { TickTime start = TickTime.Now; if (!intensity_ms.InClosedInterval(1, int.MaxValue)) { intensity_ms = 1; } while (!this.Enter()) { if (timeout_ms > 0 && start.Timeout(timeout_ms)) { return(false); } try { Thread.Sleep(intensity_ms); } catch { return(false); } } return(true); }
public static bool Timeout(this TickTime start, long timeout, TickTime.Unit unit = TickTime.Unit.ms) { return(TickTime.Timeout(start, timeout, unit)); }