await funcAsync(server, server.Address).WaitAsync(TimeSpan.FromMilliseconds(millisecondsTimeout));
AlgorithmType.Lottery => new LotteryPicker(TimeSpan.FromMilliseconds(Quantum)),
AlgorithmType.Guaranteed => new GuaranteedPicker(TimeSpan.FromMilliseconds(Quantum)),
AlgorithmType.Rr => new RoundRobinPicker(TimeSpan.FromMilliseconds(Quantum)),
=> TryWaitAsync(TimeSpan.FromMilliseconds(timeout));
new TimeSpan(Hours, Minutes, Seconds).Add(TimeSpan.FromMilliseconds(Milliseconds)) == new TimeSpan(other.Hours, other.Minutes, other.Seconds).Add(TimeSpan.FromMilliseconds(other.Milliseconds)));