Commande de compilation...
Commande d'exécution...
Fichier source...
upscmp Source=tache.upl
tache
Source Composant "Exemple d'emploi des taches" Version 1.0.0;
Variable
/******/
S : Nul Ou Synchronisation;
T1 : Nul Ou Tache;
C : Caractere;
Fonction PrincipalT1(T : Nul Ou Tache) Retourner Entier
/***************************************************/
Debut
Ecran.Ecrire("Debut de la tâche "+T.NomTache);
S.Prendre(SynchronisationLecturePartagee);
Attendre(1);
Ecran.Ecrire("T1 (1) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLecturePartagee);
Attendre(1);
Ecran.Ecrire("T1 (2) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLecturePartagee);
Attendre(1);
Ecran.Ecrire("T1 (3) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1);
Ecran.Ecrire("T1 (4) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1);
Ecran.Ecrire("T1 (5) : C="+C);
S.Lacher();
S.Prendre(SynchronisationLectureExclusive);
Attendre(1);
Ecran.Ecrire("T1 (6) : C="+C);
S.Lacher();
T.SuspendreTache();
TantQue Vrai Faire
Ecran.Ecrire("T1 (7) Je ne fais rien");
Attendre(1);
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);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1);
C="coucou2";
Ecran.Ecrire("TP (2) : C="+C);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1);
C="coucou3";
Ecran.Ecrire("TP (3) : C="+C);
S.Lacher();
S.Prendre(SynchronisationEcriturePartagee);
Attendre(1);
S.Lacher();
Si T1.EstSuspendue() Alors
Ecran.Ecrire("T1 est suspendue");
Sinon
Ecran.Ecrire("T1 n'est pas suspendue");
Fin Si
T1.ReprendreTache();
Attendre(5);
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