Ver Mensaje Individual
  #1  
Antiguo 09-01-2012
Anel Hernandez Anel Hernandez is offline
Miembro
 
Registrado: mar 2005
Posts: 94
Reputación: 22
Anel Hernandez Va por buen camino
Ejecutar y vigilar varios programas a la vez

Hola,

necesito mandar a correr un programa varias veces con distintos parametros. pero necesito mandar a la vez la misma cantidad que numero de nucleos tenga el micro. Cuando termine uno, mandar otro y asi hasta terminar todos.

Es decir, si tengo 4 nucleos y debo mandar mi programa a ejecutar 31 veces, primero debo mandar a ejecutar 4 veces el programa. y cada vez que se cierre uno mandar otro manteniendo el numero de programas activo en 4. Cuando se acerque a 31 pues quedaran corriendo 3, 2 y 1 hasta que termine.

el numero de micros lo leo con la variable NumMicro.

hasta ahora lo hago de esta manera:
Código Delphi [-]
var
 i:integer;
 Info:TShellExecuteInfo;
 programa:string;
begin

 for i:=1 to CheckListBox1.items.count do begin
  if CheckListBox1.Checked[i-1] then begin
  
   with Info do begin
    cbSize := SizeOf(ShellExecuteInfo);
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Handle;
    lpVerb := 'open';
    lpFile := PChar(DirT+programa);
    lpParameters := PChar(checklistbox1.items.Strings[i-1]);
    lpDirectory := PChar(ExtractFileDir(checklistbox1.items.Strings[i-1])+'\');
    nShow := SW_SHOW;
   end;
   ShellExecuteE@INFO);
   Repeat
    Application.ProcessMessages;
   until (WaitForSingleObject( Info.hProcess,500)<> WAIT_TIMEOUT);

No quisiera usar hilos. Quisiera modificar este algoritmo de forma que identifique cada proceso y los vigile.

Pudieran ayudarme
Gracias
Responder Con Cita