默认VCL应用程序中的其他线程是什么,它们是否可以按目的命名?

时间:2012-02-20 17:53:54

标签: multithreading delphi

如果您创建基本VCL应用程序并执行它,则会运行一些线程。它们的每个线程是什么,可以命名它们以便更容易地调试多线程应用程序?

我尝试命名我所有的子线程,并且在调试时可以清楚地了解每个子线程在查看线程状态调试窗口时所执行的操作。 (如果一个人没有被命名,那将是一个提示来追踪它并命名它。)

1 个答案:

答案 0 :(得分:15)

XE2中的普通32位VCL应用程序,在64位Windows 7上运行,有3个线程。主线程和两个额外的。通过调用TApplication.CreateHandleWTSRegisterSessionNotification中创建了两个额外的主题。如果您想为其命名,则可以枚举threads in the process并致电NameThreadForDebugging

根据我的经验,跟踪应用中的所有主题非常困难。一旦您的应用程序变得适度复杂,那么可能会有大量的线程来来去去。我个人认为那些我没有说出来是别人的责任!