gpt4 book ai didi

.net - Visual Studio 的线程窗口如何识别 "Main Thread'

转载 作者:行者123 更新时间:2023-12-04 12:24:45 25 4
gpt4 key购买 nike

我可能遗漏了一些明显的东西,但请幽默我...

我总是喜欢在我的应用程序中命名重要线程,因为它对调试/日志记录等很有用。如果您通过 Thread.CurrentThread.Name 查询主线程的名称在程序启动时,您将返回 null .因此,我总是确保发生的第一件事是为主线程(和任何其他相关线程)分配一个很好的有意义的名称以供将来引用。

直到今天我才真正考虑过它,但是当查看 Visual Studio 中的线程窗口时(在分配任何线程名称之前等),分配了一个特殊类别“主线程”以及一个伪名称,该名称也显示为“Main Thread”(但这不是实际的线程名称)。

从托管的角度来看,.NET 在 System.Threading.Thread 上都没有公开任何有意义的内容。或 System.Diagnostics.ProcessThread标识应用程序的主线程(至少我可以看到)。我看了Windows Process and Thread Functions的名单,再一次,我没有看到任何明显的东西(也许是 OpenThread?)。

好奇是否有人知道线程窗口如何分配特殊类别“主线程”?

最佳答案

调试器使用 DEBUG_PROCESS 选项通过 CreateProcess 开始调试。主线程的句柄在 PROCESS_INFORMATION.hThread 中返回,因此无需猜测。附加有点棘手,大概是它在使用 DebugActiveProcess() 附加后从 WaitForDebugEvent 看到的第一个 CREATE_THREAD_DEBUG_EVENT 通知。

source code如果您想仔细查看,可以使用 MDbg。

关于.net - Visual Studio 的线程窗口如何识别 "Main Thread',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com