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