В любой серьезной структуре ведения журналов вы можете включить идентификатор потока или имя потока в выходное сообщение. Если вы просто хотите использовать консоль, вам, возможно, придется вручную добавить идентификатор / имя текущего потока в ваше сообщение.
Вроде так:
public static void WriteX()
{
var sw = Stopwatch.StartNew();
for (int i = 1; i <= 3; i++)
{
Console.WriteLine("Hello");
Thread.Sleep(1000);
}
sw.Stop();
Console.WriteLine("{0} {1}",
Thread.CurrentThread.ManagedThreadId,
sw.Elapsed);
}
Чтобы назвать поток, просто используйте свойство Name в экземпляре потока:
ThreadStart one = new ThreadStart(WriteX);
Thread startOne = new Thread(one);
startOne.Name = "StartOne";
//...
Console.WriteLine("{0} {1}", Thread.CurrentThread.Name, sw.Elapsed);
Кроме того, когда метод, передаваемый в качестве аргумента конструктора ThreadStart
, завершается, поток завершается автоматически. Используйте метод Join
, если хотите дождаться окончания потока в главном.