Sunteți pe pagina 1din 2

Fire de executie C#

Un fir de executie are mai multe stari:

1) Creat – prin crearea unui obiect cu Thread()


2) Gata de executie – ThreadStart care are ca parametru delegatul ce va indica ce metoda va rula
3) Incurs de executie
4) Suspendat
5) Terminat
6) Amanat – cu functia sleep(nrMiliSecunde) - Thread.Sleep(5000);
7) Blocat – cand trebuiesc blocate anumite resurse pentru a fi utilizate pe rand

Ex:

Thread thread1 = new Thread (new ThreadStart([metoda]));


thread1.Start();

Obs.

Poti da si nume thread1.Name = "Thread One";

Abort() se foloseste atunci cand vrem sa oprim (“kill”) un fir de executie.

//thread2 a fost oprit


Thread1.Abort()

Presupunem ca suntem in situatia cand vrem ca un thread sa astepte un alt thread sa isi termine
executia, inainte ca thread-ul nostru curent sa continue.

//se va merge mai departe cu executia programului dupa terminararea celor trei fire de executie

thread1.Join();

thread2.Join();

thread3.Join();

Firele de executie pot avea prioritati: Lowest, BelowNormal, Normal, AboveNormal, Highest

Ex: thread1.Priority = ThreadPriority. Lowest;

Thread sunt:

1) start – lansarea în executie a firului;


2) run – metoda care se va executa la pornirea firului;
3) yield – cedeaza executia altor fire concurente;
4) setPriority – stabilirea prioritatii firului de executie cu valori cuprinse între Lowest si Highest
Metoda Descriere
Start începe executie unui fir Interrupt întrerupe
executia unui fir
Suspend suspenda executia unui fir Resume continua
executia unui fir suspendat
Join asteapta un alt fir
Sleep opreste executia firului pe o durata de timp
determinata

Accesul la resurse se face pe baza semafoarelor sau cu mutex(Monitor, Mutex)

S-ar putea să vă placă și