Mỗi luồng có thuộc tính Name (string) để gán nhãn, hữu ích khi debug (xem trong Visual Studio Threads window).
Mã nguồn
using System;
using System.Threading;
namespace Demo {
class MyClass {
static void Main(string[] args) {
Thread thread = Thread.CurrentThread;
thread.Name = "My Thread"; // Gán tên
Console.WriteLine("Tên luồng = {0}", thread.Name);
Console.ReadKey();
}
}
}
Kết quả
Tên luồng = My Thread
Đặt tên khi tạo luồng mới
var thread = new Thread(() => {
Console.WriteLine("Running in: " + Thread.CurrentThread.Name);
}) {
Name = "Worker-1" // Gán tên qua object initializer
};
thread.Start();
Lưu ý
Thread.CurrentThread.Namemặc định lànull.- Chỉ gán tên một lần — gán lại sẽ ném
InvalidOperationException. - Tên luồng hiển thị trong: Visual Studio Debug > Windows > Threads, Profiler, log tracing.
- Khuyến nghị: đặt tên có ý nghĩa (
"DB-Worker","UI-Renderer","HttpClient-Pool") để dễ debug đa luồng. - Với
Task, dùngTask.Run(() => ..., "TaskName")(.NET 6+) hoặc gánTask.CurrentId.