public PrivateThreadPool(int maxThreads, bool useFXThreadPool) { this.exceptions = ArrayList.Synchronized(new ArrayList()); if ((maxThreads < MinimumCount) || (maxThreads > MaximumCount)) { throw new ArgumentOutOfRangeException("maxThreads", "must be between " + MinimumCount.ToString() + " and " + MaximumCount.ToString() + " inclusive"); } this.counter = new WaitableCounter(maxThreads); this.useFXTheadPool = useFXThreadPool; }
protected override void Dispose(bool disposing) { if (disposing) { this.Drain(); if (this.counter != null) { this.counter.Dispose(); this.counter = null; } } base.Dispose(disposing); }
// Methods public CounterToken(WaitableCounter parent, int index) { this.parent = parent; this.index = index; }