« Transaction mémoire isolée (parallel) » : différence entre les versions

De Wiki1000
(Page créée avec « Un transaction mémoire par exécuteur : <source lang="delphi"> //Procedure doProcess(inst:WFClasseA); var inst:WFClasseA; begin // One separate transaction // Use priva… »)
 
Aucun résumé des modifications
 
Ligne 30 : Ligne 30 :
end;
end;
</source>
</source>
{{tip|Notez l'utilisation de '''private''' pour allouer une nouvelle transaction ; sans cette option chaque exécuteur partagerait la même transaction.}}


[[Category:Parallèle]]
[[Category:Parallèle]]

Dernière version du 17 octobre 2011 à 08:01

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.