Le fichier source est ${UPS_HOME}/upssdk/demo/${UPS_LANGUAGE}/tache.upl.
upscmp Source=tache.upl
tache
upssng Source=tache.upl
Source Composant "Exemple d'emploi des taches" Version 4.0.0;
Variable
/******/
S : Nul Ou Synchronisation;
T1 : Nul Ou Tache;
C : Caractere Synchroniser;
Fonction PrincipalT1(T : Nul Ou Tache) Retourner Entier
/*****************************************************/
Debut
Ecran.Ecrire("Debut de la tâche "+T.NomTache);
S.Prendre(SynchronisationLecturePartagee);
Attendre(1.0);
Ecran.Ecrire("T1 (1) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLecturePartagee);
Attendre(1.0);
Ecran.Ecrire("T1 (2) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLecturePartagee);
Attendre(1.0);
Ecran.Ecrire("T1 (3) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1.0);
Ecran.Ecrire("T1 (4) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1.0);
Ecran.Ecrire("T1 (5) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1.0);
Ecran.Ecrire("T1 (6) : C="+C);
S.Lacher();
T.SuspendreTache();
TantQue Vrai Faire
Ecran.Ecrire("T1 (7) Je ne fais rien");
Attendre(1.0);
Fin TantQue
Fin Fonction
Principal
/*******/
Debut
S=Synchronisation("ExempleDeSynchronisation", SynchronisationPrivee);
S.Prendre(SynchronisationEcritureExclusive);
T1=Tache("ExempleDeTache", PrincipalT1, Faux);
C="coucou";
Ecran.Ecrire("TP (1) : C="+C);
Attendre(5.0);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1.0);
C="coucou2";
Ecran.Ecrire("TP (2) : C="+C);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1.0);
C="coucou3";
Ecran.Ecrire("TP (3) : C="+C);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1.0);
S.Lacher();
Si T1.EstSuspendue() Alors
Ecran.Ecrire("T1 est suspendue");
T1.ReprendreTache();
Sinon
Ecran.Ecrire("T1 n'est pas suspendue");
Fin Si
Attendre(5.0);
T1.ArreterTache(1);
Si T1.EstTerminee Alors
Ecran.Ecrire("T1 est terminée");
Fin Si
Ecran.Ecrire("Code retour de T1="+Caractere(T1.CodeRetour));
T1=Nul;
Fin Principal