Идентификатор потока в C#
Свойство Thread.CurrentThread.ManagedThreadId
возвращает числовой идентификатор текущего управляемого потока.
Он удобен для диагностических сообщений и журналов.
Главный поток и созданный через Thread рабочий поток
имеют разные идентификаторы. Сами числа заранее неизвестны,
поэтому программа должна сравнивать их, а не ожидать конкретные значения.
Сохраним оба идентификатора и проверим, что они различаются. Первые две строки содержат разные числа, а третья -
True. Ожидание нужно, чтобы рабочий
поток успел записать свой идентификатор до вывода:
int mainId = Thread.CurrentThread.ManagedThreadId;
int workerId = 0;
Thread worker = new(() =>
{
workerId = Thread.CurrentThread.ManagedThreadId;
});
worker.Start();
worker.Join();
Console.WriteLine(mainId);
Console.WriteLine(workerId);
Console.WriteLine(mainId != workerId);
Запустите два рабочих потока. В каждом сохраните идентификатор своего потока в отдельное поле. После завершения обоих выведите, отличаются ли эти поля друг от друга и от идентификатора главного потока.