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
Смотрите также
-
Start,
запуск потока -
Join,
ожидание конца -
IsBackground,
фоновый режим -
ThreadPool,
очередь работ