可能重复:
What are the other threads in a default VCL application, and can they be named by purpose?
在Delphi XE2(32位)中运行新的空VCL表单应用程序时,我看到此应用程序的任务管理器中运行了4个线程。显然任何应用程序至少需要1个线程,但在这种情况下,其他3个线程是什么?我想更好地了解默认情况下任何VCL表单应用程序运行的线程。我想可能必须是我从RAD Studio以调试模式运行的事实,所以我自己启动了EXE,并且还运行了4个线程。我也尝试在“发布”配置下编译(因此禁用编译调试信息)并且仍然有4个线程。
答案 0 :(得分:8)
要确定线程的来源,可以使用process explorer或process hacker等工具检查线程的起始地址。
在这种情况下,例如你可以看到
答案 1 :(得分:5)
在我的计算机上创建除主线程之外的所有其他线程,因为应用程序的窗口已注册为使用Wtsapi32.WTSRegisterSessionNotification API接收会话更改通知。您可以在Vcl.Forms中看到实现 - > TApplication.CreateHandle程序。它必须与您通过终端服务/远程桌面登录时应用程序的工作/外观有关。 其他一些线程可能存在,因为其他一些程序将代码加载到您的可执行文件中。