Додаток .NET складається з одного або декількох процесів. Процесу належать виділена для нього область оперативної пам'яті і ресурси. Кожен процес може складатися з декількох доменів (частин) додатків, ресурси яких ізольовані один від одного. В рамках домена може бути запущене декілька потоків виконання. Потоком (thread) є частина виконуваного коду програми. У кожному процесі є первинний потік, виконуючий роль точки входу в додаток. Для консольних застосувань це метод Main.
Багатопотокові застосування створюють як для багатопроцесорних, так і для однопроцесорних систем. Основною метою при цьому є підвищення загальної продуктивності і скорочення часу реакції додатку. Управління потоками здійснює операційна система. Кожен потік отримує деяку кількість квантів часу, після закінчення якого управління передається іншому потоку. Це створює у користувача однопроцесорної машини враження одночасної роботи декількох потоків і дозволяє, наприклад, виконувати введення тексту одночасно з тривалою операцією по передачі даних.
Недоліки багатопоточності:
§ велика кількість потоків веде до збільшення накладних витрат, пов'язаних з їх перемиканням, яке знижує загальну продуктивність системи;
§ у багатопотокових застосуваннях виникають проблеми синхронізації даних, що пов'язані з доступом до одних і тих же даних з боку декількох потоків.