我有一个从Windows开始的Delphi 7应用程序。此应用程序有一个计时器。自从Web服务与数据库处理通信以来,每60秒执行大约50个不同的进程。
在每个计时器事件结束时,我会在下面执行以下代码以减少应用程序的内存大小:
MainHandle := OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessID);
SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF);
CloseHandle(MainHandle);
运行约10个小时后,开始出现问题,例如“内存不足”。尽管Windows任务管理器指示我的应用程序的内存使用率较低,但是如果我查看Windows资源监视器,则“线程”列中的应用程序大约有1300个主题。我相信这就是“内存不足”的原因。
由于这个应用程序有很多旧代码,我想知道是否有一种方法可以获取我的应用程序创建的线程数,因此我将在执行每个进程后对其进行验证,以确定是哪个进程导致了这个问题。