在应用程序中运行的thred数量

时间:2019-03-12 16:44:40

标签: multithreading out-of-memory delphi-7

我有一个从Windows开始的Delphi 7应用程序。此应用程序有一个计时器。自从Web服务与数据库处理通信以来,每60秒执行大约50个不同的进程。

在每个计时器事件结束时,我会在下面执行以下代码以减少应用程序的内存大小:

  MainHandle := OpenProcess(PROCESS_ALL_ACCESS, False, GetCurrentProcessID);
  SetProcessWorkingSetSize(MainHandle, $FFFFFFFF, $FFFFFFFF);
  CloseHandle(MainHandle);

运行约10个小时后,开始出现问题,例如“内存不足”。尽管Windows任务管理器指示我的应用程序的内存使用率较低,但是如果我查看Windows资源监视器,则“线程”列中的应用程序大约有1300个主题。我相信这就是“内存不足”的原因。

由于这个应用程序有很多旧代码,我想知道是否有一种方法可以获取我的应用程序创建的线程数,因此我将在执行每个进程后对其进行验证,以确定是哪个进程导致了这个问题。

0 个答案:

没有答案