获取线程ID

13

可能重复:
C#/.NET:如何从线程获取线程ID?

我如何获得与在Visual Studio中看到的相同的线程ID?

我尝试使用Thread.CurrentThread.ManagedThreadId,但是我得到不同的数字。

我得到35、38、39等,但在Visual Studio中我有10596、893等...

3个回答

15

使用 GetCurrentThreadId() 或 ManagedThreadId() 来获取线程 ID:

int threadID = (int)AppDomain.GetCurrentThreadId();
int managedThreadId = Thread.CurrentThread.ManagedThreadId;
Console.WriteLine("ThreadId = " + threadID);
Console.WriteLine("ManagedThreadId = " + managedThreadId);

请看Stack Overflow问题 Getting the thread ID from a thread


3
System.AppDomain.GetCurrentThreadId()已经过时/弃用。 - testing
2
已被弃用,但如果您想将其映射到Visual Studio中的“线程”下拉菜单中所看到的内容,则仍然是最佳选择。 - Ready Cent
我想知道现在获取ThreadID的替代方法是什么。我无论如何都找不到一个。不要说ManagedThreadId笑。问题是...当线程退出时...在Visual Studio的输出中输出线程的“ThreadID”,而不是ManagedThreadId。因此,对我来说,ManagedThreadId没有用,因为它不能告诉我我需要知道的信息。我使用了已弃用的方法,并将Int转换为Hex,因为Visual Studio以Hex格式输出ThreadId。Hex(AppDomain.GetCurrentThreadId()) - Code Novice

3

2

如果在Visual Studio调试与实际应用中看到了不同的线程ID,这是正常现象,你应该预料到这种情况。

运行于调试器中时,实际上是在调试器宿主环境下运行应用程序,此时将会有不同于独立运行应用程序时的线程。


我认为他不是在谈论没有VS运行的应用程序。这没有任何意义... - The incredible Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接