Je třeba rozlišovat dvě věci : kolik threadů je aktivních (běží) a kolik je jich najednou zpracováváno procesorem. Na jednom procesoru se thready střídají. Z hlediska programátora však skutečně běží paralelně, i když je v počítači jen jeden procesor.
Například při asynchronním volání se vyrobí thread, v něm se vytvoří objekt a ten nastaví jak se má obsloužit odpověď a vyšle volání a může klidně skončit. Mezitím se rozjede další thread atd atd. a jiný thread se stará o překreslování /aktualizaci obrazovky a pod. Hlavní je, že prostřednictvím threadů se dá skvěle přidělovat výkon a čas procesoru a že nedochází k tomu, že by program zůstal viset, když se nějaký thread zacyklí, nebo trvá příliš dlouho.
Ale nejlepší je to stejně u komunikace. Napři při posílání zpráv přes Messenger Service. Bez thredu ti program po vyslání message asi dvě až tři vteřiny bude čekat na to, než posilaný text schroustá windows služba a než vrátí nějaký result. Pokud se to udělá v dalším thredu, následuje po volání API funkce okamžitý návrat do hlavního vlákna programu a program - takže to vlastně běží paralelně, i když je jasné, že někde v hlubinách se to dělí o jedny a ty samé registy :o)