Запуск потока в C#
Конструктор Thread принимает
ParameterizedThreadStart - делегат с параметром
object. Значение передаётся вторым шагом через
Start(state), без захвата общих полей из замыкания.
Аргумент приходит как object, поэтому в потоке его приводят к int. Главный поток ждёт завершения, чтобы программа не закрылась раньше вывода.
Передадим в поток число 12. Поток получил тот же объект, который передали при запуске. Если привести к int значение другого типа, возникнет InvalidCastException:
Thread t = new(state => Console.WriteLine((int)state)); // выведет 12
t.Start(12);
t.Join();
Запустите поток и передайте ему строку "ready". В потоке приведите аргумент к строке и выведите её в консоль.