Метод Start
Метод Start вызывают один
раз на экземпляр. После него
ждут
Join,
иначе главный поток может не
увидеть запись. Пауза внутри -
Sleep.
Синтаксис
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
Пример
Давайте проверить флаг
IsBackground
до Start:
using System;
using System.Threading;
class Program
{
static void Main()
{
var thread = new Thread(() => { });
bool res = thread.IsBackground;
Console.WriteLine(res);
}
}
Результат выполнения кода:
False
Смотрите также
-
Join,
дождаться конца -
Thread,
класс потока -
Sleep,
пауза в потоке -
QueueUserWorkItem,
работа в пуле