Свойство ManagedThreadId
ManagedThreadId больше
нуля, но конкретное число
зависит от процесса - его
не выводят. Берут у
CurrentThread.
На одном потоке два чтения
совпадают.
Синтаксис
int id = thread.ManagedThreadId;
Пример
Давайте проверить, что идентификатор положительный:
using System;
using System.Threading;
class Program
{
static void Main()
{
bool res = Thread.CurrentThread.ManagedThreadId > 0;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте дважды прочитать
ManagedThreadId:
using System;
using System.Threading;
class Program
{
static void Main()
{
int a = Thread.CurrentThread.ManagedThreadId;
int b = Thread.CurrentThread.ManagedThreadId;
bool res = a == b;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте сравнить идентификатор в дочернем потоке с двумя чтениями там же:
using System;
using System.Threading;
class Program
{
static void Main()
{
bool same = false;
var thread = new Thread(() =>
{
int x = Thread.CurrentThread.ManagedThreadId;
int y = Thread.CurrentThread.ManagedThreadId;
same = x == y;
});
thread.Start();
thread.Join();
bool res = same;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
CurrentThread,
текущий поток -
Start,
новый поток -
QueueUserWorkItem,
пуловый поток -
Thread,
класс