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

    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
    반응형

    댓글