Jer*_*dge 6 delphi multithreading vcl delphi-xe2
在Delphi XE2(32位)中运行新的空VCL Forms应用程序时,我看到此应用程序的任务管理器中运行了4个线程.显然任何应用程序至少需要1个线程,但在这种情况下,其他3个线程是什么?我想更好地了解默认情况下任何VCL表单应用程序运行的线程.我想可能必须是我从RAD Studio以调试模式运行的事实,所以我自己启动了EXE,并且还运行了4个线程.我也尝试在"发布"配置下编译(因此禁用编译调试信息),仍然有4个线程.

要确定线程的来源,可以使用process explorer或process hacker之类的工具检查线程的起始地址.

在这种情况下,例如你可以看到
在我的计算机上创建除主线程之外的所有其他线程,因为应用程序的窗口已注册为使用Wtsapi32.WTSRegisterSessionNotification API接收会话更改通知.您可以在Vcl.Forms - > TApplication.CreateHandle过程中看到实现.它必须与您通过终端服务/远程桌面登录时应用程序的工作/外观有关.其他一些线程可能存在,因为其他一些程序将代码加载到您的可执行文件中.