public async Task TenK_WithPooledTimer() { TimerPool timerPool = new TimerPool(1); List <Task> timers = new List <Task>(this.timeouts.Count); for (int i = 0; i < this.timeouts.Count; i++) { PooledTimer timer = timerPool.GetPooledTimer(this.timeouts[i] / 1000); timers.Add(timer.StartTimerAsync()); } await Task.WhenAll(timers); timerPool.Dispose(); }