개발 정보/델파이

[Delphi] 델파이 현재 프로세스 스레드 수 얻기

RoRoBong 2021. 6. 11. 12:18
728x90

안녕하세요

로로봉입니다 : )

스레드를 사용하다보면 현재 개발중인 프로그램에 스레드가 몇개나 실행되고 있는지 궁금하거나 관리가 필요할 때가 종종 있습니다.

오늘은 델파이 프로그램에서 스레드 수를 얻는 방법을 알아보도록 하겠습니다.

우선 uses절에 TlHelp32를 추가해줍니다.

uses
  TlHelp32;

간단히 아래 함수를 추가하여 현재 프로세스의 스레드 수를 얻을 수 있습니다.

function GetProcessThreadCount: integer;
var
  SnapProcHandle: THandle;
  ThreadEntry: TThreadEntry32;
  Next: boolean;
begin
  result := 0;
  SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
  if SnapProcHandle <> THandle(-1) then
  begin
    ThreadEntry.dwSize := SizeOf(ThreadEntry);
    Next := Thread32First(SnapProcHandle, ThreadEntry);
    while Next do
    begin
      if (ThreadEntry.th32OwnerProcessID = GetCurrentProcessId) then
        result := result + 1;
      Next := Thread32Next(SnapProcHandle, ThreadEntry);
    end;
    CloseHandle(SnapProcHandle);
  end;
end;

 

좋아요 ♥ + 구독 부탁드립니다. : )

728x90
반응형