How to Gets Thread Count in a Process

Herhangi bir prosesin (işlem) bünyesinde bulunan thread (kanal) sayısını almak için aşağıdaki alt programı kullanabilirsiniz. GetCurrentProcessId çalışmakta olan programın prosess kimlik numarasını getirir. TlHelp32 ünitesini dahil etmeyi unutmayın.

[delphi]
implementation
uses TlHelp32;

function ThreadCount(iProcessID: DWord): integer;
var
SnapHandle: THandle;
ProcEntry: TProcessEntry32;
begin
Result := 0;
SnapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if SnapHandle = 0 then Exit;
FillChar(ProcEntry, SizeOf(TProcessEntry32), 0);
ProcEntry.dwSize := SizeOf(TProcessEntry32);
if Process32First(SnapHandle, ProcEntry) then
begin
if ProcEntry.th32ProcessID = iProcessID then
begin
Result := ProcEntry.cntThreads;
Exit;
end;
while Process32Next(SnapHandle, ProcEntry) = true do
begin
if ProcEntry.th32ProcessID = iProcessID then
begin
Result := ProcEntry.cntThreads;
Break;
end;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := inttostr( ThreadCount( GetCurrentProcessId ));
end;
[/delphi]

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site istenmeyenleri azaltmak için Akismet kullanır. Yorum verilerinizin nasıl işlendiğini öğrenin.