private int CheckTimeout (TimeSpan timeout) { int ms = (int) timeout.TotalMilliseconds; if (ms < -1) throw new ArgumentOutOfRangeException ("timeout", "Number must be either non-negative or -1"); return ms; } }