Quando si lavora con il multithreading, una delle prime cose da valutare è la possibilità di utilizzo della classe ThreadPool. Su MSDN Magazine sono disponibili due articoli che spiegano come estendere questo oggetto per aggiungere alcune funzionalità secondo me molto importanti: attendere la terminazione di un pool di thread (ThreadPoolWait) ed annullare l'esecuzione di uno specifico thread inserito nella coda di esecuzione (AbortableThreadPool). Entrambi questi articoli sono accompagni dal codice sorgente in linguaggio C#.