2010-09-28 20 views
6

मैं डेल्फी 2010 का उपयोग कर रहा हूं, क्या डेल्फी फ़ंक्शन या विंडोज एपीआई के माध्यम से प्रोजेक्ट की चलती थ्रेड गिनती जानने के लिए वैसे भी है?रनिंग थ्रेड

उत्तर

5

आप TH32CS_SNAPTHREAD झंडा

यह कोड दिखाई साथ CreateToolhelp32Snapshot फ़ंक्शन का उपयोग कर सकते हैं।

uses 
    PsAPI, 
    TlHelp32, 
    Windows, 
    SysUtils; 

    function GetTThreadsCount(PID:Cardinal): Integer; 
    var 
     SnapProcHandle: THandle; 
     NextProc  : Boolean; 
     TThreadEntry : TThreadEntry32; 
     Proceed  : Boolean; 
    begin 
     Result:=0; 
     SnapProcHandle := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); //Takes a snapshot of the all threads 
     Proceed := (SnapProcHandle <> INVALID_HANDLE_VALUE); 
     if Proceed then 
      try 
      TThreadEntry.dwSize := SizeOf(TThreadEntry); 
      NextProc := Thread32First(SnapProcHandle, TThreadEntry);//get the first Thread 
      while NextProc do 
      begin 
       if TThreadEntry.th32OwnerProcessID = PID then //Check the owner Pid against the PID requested 
       Inc(Result); 
       NextProc := Thread32Next(SnapProcHandle, TThreadEntry);//get the Next Thread 
      end; 
      finally 
      CloseHandle(SnapProcHandle);//Close the Handle 
      end; 
    end; 

और इस तरह से कहते हैं, GetCurrentProcessId समारोह जो का उपयोग कर अपने आवेदन की पीआईडी ​​(प्रक्रिया पहचानकर्ता) पुन: प्राप्त करता।

Var 
Num :integer; 
begin 
Num:=GetTThreadsCount(GetCurrentProcessId); 
end; 
+0

उत्तर के लिए धन्यवाद। – lmengyew

1

नमूना कोड here देखें जो एक प्रक्रिया के धागे को दर्शाता है।

0

डब्ल्यूएमआई का उपयोग करके आप सिस्टम में प्रक्रिया सूची runninig और प्रक्रिया के बारे में सभी जानकारी प्राप्त कर सकते हैं। आपको Win32_process कक्षा का उपयोग करना होगा।
इस वर्ग में विधि थ्रेडकाउंट:
········································· शामिल है ·····················
थ्रेडकाउंट
प्रक्रिया में सक्रिय धागे की संख्या। एक निर्देश प्रोसेसर में निष्पादन की मूल इकाई है, और एक थ्रेड वह ऑब्जेक्ट है जो एक निर्देश निष्पादित करता है। प्रत्येक चलती प्रक्रिया में कम से कम एक धागा होता है। ·················································· ··········

Here (मेरे वेब पर) आप इस विषय के बारे में संसाधन पा सकते हैं।

(1) VProcess; एप्लिकेशन थह GLibWMI Library का उपयोग करने वाली सभी प्रक्रियाओं को पुनर्प्राप्त करने और इसके बारे में जानकारी प्राप्त करने के लिए उपयोग करें। इस जानकारी में थ्रेडकाउंट शामिल है। परियोजना नि: शुल्क है और स्रोत शामिल है (आप इसे देख सकते हैं और मूल्यांकन कर सकते हैं)।

alt text

(2) आप GLibWMI डाउनलोड करने और घटक TProcessInfo कि आप इस प्रक्रिया की सभी जानकारी (यह VProcess पर प्रयोग किया जाता है) देने के देख सकते हैं। यह पुस्तकालय यह मुफ़्त है और स्रोत कोड उपलब्ध है। आप इसे देख सकते हैं और कोड का मूल्यांकन कर सकते हैं। इस घटक का परीक्षण करने वाले जनसंख्या देखें।

मुझे आशा है कि यह आपके लिए उपयोगी होगा।

सम्मान।

संबंधित मुद्दे