Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1268 of 1492 menu
◀ ▶

Thread

Thread не стартует сам: нужен Start. Завершение ждут через Join. Текущий поток - CurrentThread. Общая очередь - ThreadPool.

Синтаксис

Thread thread = new Thread(start); thread.Start();

Пример

Давайте записать текст в потоке и дождаться Join:

using System; using System.Threading; class Program { static void Main() { string text = ""; var thread = new Thread(() => { text = "abcde"; }); thread.Start(); thread.Join(); string res = text; Console.WriteLine(res); } }

Результат выполнения кода:

"abcde"

Пример

Давайте проверить, что без Start поток не бежит:

using System; using System.Threading; class Program { static void Main() { bool ran = false; var thread = new Thread(() => { ran = true; }); bool res = ran; Console.WriteLine(res); } }

Результат выполнения кода:

False

Пример

Давайте убедиться, что новый поток не из пула:

using System; using System.Threading; class Program { static void Main() { bool fromPool = true; var thread = new Thread(() => { fromPool = Thread.CurrentThread.IsThreadPoolThread; }); thread.Start(); thread.Join(); bool res = fromPool; Console.WriteLine(res); } }

Результат выполнения кода:

False

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить