nel link che hai postato c'è anche una Sleep
Thread.Sleep(1000);

tu l'hai rimossa xchè? Letto il commento?
// If you comment out the Sleep, the main thread exits before
// the thread pool task runs.

se la rimuovi il thread principale esce prima che il task del pool di thread venga avviato.