estoy usando Delphi 2010, de todos modos hay que saber hilos ejecutados cuentan del proyecto a través de la función de Delphi o de API de Windows?subprocesos que se ejecutan cuentan
Respuesta
puede utilizar la función CreateToolhelp32Snapshot
con la bandera TH32CS_SNAPTHREAD
ver este código.
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;
Y llama de esta manera, utilizando la función wich GetCurrentProcessId
Recupera el PID (identificador de proceso) de su aplicación.
Var
Num :integer;
begin
Num:=GetTThreadsCount(GetCurrentProcessId);
end;
Es un poco exagerado solo para obtener un conteo, pero CreateToolhelp32Snapshot
seguido de Thread32First
y Thread32Next
debería hacer el trabajo.
Consulte el código de ejemplo here que enumera los hilos de un proceso.
Usando WMI puede obtener la lista de procesos que se ejecuta en el Sistema y toda la información sobre el proceso. Debe usar la clase Win32_process.
esta clase incluyen el método threadcount:
······································· ····························
ThreadCount
Número de hilos activos en un proceso. Una instrucción es la unidad básica de ejecución en un procesador, y un hilo es el objeto que ejecuta una instrucción. Cada proceso en ejecución tiene al menos un hilo. ····················································································································· ··········
Here (en mi web) puede encontrar recursos sobre este tema.
(1) VProcess; Aplicación que utiliza GLibWMI Library para recuperar todos los procesos en ejecución e información sobre esto. ThreadCount está incluido en esta información. El proyecto es gratuito y la fuente está incluida (se puede ver y evaluar).
(2) Puede descargar GLibWMI y ver el componente TProcessInfo que le dan toda la información del proceso (se usa en VProcess). Esta biblioteca es gratuita y el código fuente está disponible. Puedes verlo y evaluar el código. Vea las demostraciones que prueban este componente.
espero que esto son ussefull para usted.
Atentamente.
- 1. Subprocesos GAE python que no se ejecutan en paralelo
- 2. ¿Cómo se ejecutan varios procesos/subprocesos/interfaces de Tornado?
- 3. ¿Es seguro utilizar threadf en hilos que se ejecutan simultáneamente?
- 4. Declaración vs progreso se cuentan las
- 5. ¿Diferencia entre procesos que se ejecutan en modo kernel y se ejecutan como raíz?
- 6. Limitación del número de subprocesos que ejecutan un método a la vez
- 7. Espere a que se completen los subprocesos
- 8. La depuración multihebra Eclipse CDT no es óptima: ¿cómo se ejecutan subprocesos exclusivamente?
- 9. Las secuencias de comandos que se ejecutan en jquery.ajax() páginas cargadas ejecutan document.ready demasiado pronto
- 10. ¿Cómo se arreglan las consultas que solo se ejecutan lentamente hasta que se guardan en caché?
- 11. se ejecutan múltiples servidores Tomcat
- 12. Múltiples consultas que no se ejecutan en FMDB
- 13. iPhone aplicaciones web que se ejecutan como aplicaciones nativas
- 14. Pruebas de depuración que se ejecutan bajo NUnit
- 15. Múltiples versiones de Java que se ejecutan simultáneamente en Windows
- 16. Listar las consultas que se ejecutan en SQL Server
- 17. Scripts de perfiles de Python que se ejecutan en mod_wsgi
- 18. tareas que se ejecutan en paralelo en pitón
- 19. ¿Cómo puedo especificar el orden en que se ejecutan before_filters?
- 20. Funciones que no se ejecutan antes de Sys.sleep()
- 21. Instancias de Swingworker que no se ejecutan al mismo tiempo
- 22. ¿Cómo puedo ver las consultas que se ejecutan contra Oracle?
- 23. ¿Cómo verificar las aplicaciones que se ejecutan actualmente en Android?
- 24. MYSQL borrar todos los resultados que cuentan count (*) = 1
- 25. ¿Puedo limitar la cantidad de objetos System.Threading.Tasks.Task que se ejecutan simultáneamente?
- 26. API POSIX llamada para enumerar todos los pthreads que se ejecutan en un proceso
- 27. comunicación entre dos procesos que ejecutan node.js
- 28. Formulario de cierre con tareas que ejecutan
- 29. se notificará cuando se hayan terminado todos los subprocesos de subprocesos de subprocesos
- 30. JAVA - Cancele las tareas que ejecutan ThreadPoolExecutor
Gracias por su respuesta. – lmengyew