Pb avec création d'un thread
Bonjour,
je suis entrain de développer une petite appli pour convertir mes enregistrements TNT en XVID. Enfin bref.
J'aimerais créer un thread pour lancer un programme externe.
Ma question est que dois-je mettre dans la procedure thread.execute ?
Alors avant d'utiliser un thread, je lançais mon appli externe comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
function tform1.LanceAppliAttenteFin(NomFichier:string):boolean;
var
StartInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
begin
result:=true;
ZeroMemory(@StartInfo, sizeof(StartInfo)); // remplie de 0 StartInfo
StartInfo.cb:=sizeof(StartInfo);
if CreateProcess(nil,PChar(NomFichier),nil,nil,true,0,nil,nil,StartInfo,ProcessInformation)
then
WaitForSingleObject(ProcessInformation.hProcess, INFINITE)// attend que l'application désignée par le handle ProcessInformation.hProcess soit terminée
else result:=false;
end;
Procedure tform1.demuxmpg;
var s:string;
t:boolean;
begin
s:='"C:\Program Files\Java\jre1.6.0_01\bin\java.exe" -jar "'+editprojectx.Text+'" "'+editsource.Text+'"';
t:=lanceappliattentefin(s); //<= Ici
end; |
Là tout larche bien, mais ce programme qui s'éxecute met entre 1 et 10 minutes pour arriver à ses fins et bloque donc mon appli pdt de temps !
Je voulais donc lancer ceci dans un thread.
Donc que dois-je mettre dans mon thread.execute ?
Car je dois dire que je suis un peu perdu !
Merci pour votre aide.