В .NET среда выполнения (CLR) разделяет потоки на два фундаментальных типа: Thread workerThread = new Thread(DoWork);
workerThread.IsBackground = true; // Фоновый режим
workerThread.Start(); Создание и управление: // Создание абстракции потока (нативный поток еще не создан)
Thread myThread = new Thread(WorkerMethod);
// Запуск нативного потока ОС
myThread.Start(argument);
// Ожидание завершения (блокирует текущий поток)
myThread.Join(TimeSpan.FromSeconds(5)); // С таймаутом Управление выполнением: Thread.Sleep(15); // Гарантированное переключение контекста (~15 мс)
Thread.Sleep(0); // Переключение на поток с равным/высшим приоритетом
Thread.Yield(); // Добровольная передача процессора (только текущее ядро)
Thread.SpinWait(100); // Активное ожидание без переключения контекста Устаревший подход (опасен!): // Прерывание в произвольной точке кода (Obsolete в .NET Core+)
thread.Abort();
// Прерывание только в точках ожидания
thread.Interrupt(); Современный подход че