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