Transaction mémoire isolée (parallel)

De Wiki1000
Révision datée du 17 octobre 2011 à 08:01 par Syfre (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Un transaction mémoire par exécuteur :

<source lang="delphi"> //Procedure doProcess(inst:WFClasseA); var inst:WFClasseA; begin

 // One separate transaction
 // Use private to allocate a new transaction in a new context
 withP  private Transaction do
  begin
    inst.unCode := 'X'+inttostr(index);
    inst.Caption := 'Objet A'+inttostr(index);
    inst.unEntier := 1+Trunc(Random(100));
  end;

end;

//Procedure ProcessSomeA(AList:WFClasseAList); var tk:Int64; begin

 tk := GetTickCount;
 try
 foreachP var inst in AList do 
  begin
   parallel dProcess(inst);
  end;
 finally
 tk := GetTickCount-tk;
 showmessage(Format('%s ms',[TickToString(tk)]));
 end;

end; </source>

Tip : Notez l'utilisation de private pour allouer une nouvelle transaction ; sans cette option chaque exécuteur partagerait la même transaction.