Trong C # khi gỡ lỗi các luồng chẳng hạn, bạn có thể thấy ID của từng luồng.
Đây sẽ là Id của các chủ đề được quản lý. ManagedThreadId
là thành viên Thread
để bạn có thể lấy Id từ bất kỳ đối tượng Thread nào . Điều này sẽ giúp bạn có ManagedThreadID hiện tại :
Thread.CurrentThread.ManagedThreadId
Để có được một luồng hệ điều hành bằng ID luồng của hệ điều hành (không phải ManagedThreadID) , bạn có thể thử một chút linq.
int unmanagedId = 2345;
ProcessThread myThread = (from ProcessThread entry in Process.GetCurrentProcess().Threads
where entry.Id == unmanagedId
select entry).First();
Dường như không có cách nào để liệt kê các luồng được quản lý và không có mối quan hệ nào giữa ProcessThread và Thread, do đó, việc nhận được một luồng được quản lý bởi Id của nó là một điều khó khăn.
Để biết thêm chi tiết về phân luồng Managed vs Unmanaged, hãy xem cung này MSDN .