Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Threadovi i varijable

[es] :: Pascal / Delphi / Kylix :: Threadovi i varijable

[ Pregleda: 1056 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reikonija
Faks<lll>
Visegrad

Član broj: 213271
Poruke: 121
*.teol.net.



+4 Profil

icon Threadovi i varijable12.11.2011. u 19:42 - pre 151 meseci
Moje pitanje je :
Kako mogu povecati npr varijablu 'i' koja je integer i ponovo je korisiti u threadu , npr imam 2 thread-a , i pokrneem ih istovremeno i prvi koji zavrsi salje podatke glavnom vcl threadu npr. neki string , i kad zavrsi povecava varijablu 'i' i cita je ponovo u svom threadu ali samo jedan thread moze povecavati varijablu.

Tj.
Thread1.Start(0)
Thread2.Start(1)
i:=1
Thread1.Finished;
dodaj obradjenu vrednost;
povecaj i za 1
koristi i;
Thread1.Start(2);
Thread2.Finished;
dodaj obradjenu vrednost string npr.;
povecaj i za 1
koristi i;
Thread1.Start(3)

Nadam se je moje pitanje bilo razumljivo znaci zanima me kako da napravim globalnu varijabu za sve threadove alo koju u jednom trenutku moze citati i pisati samo jedan thread dok drugi cekaju dok on ne zavrsi.
Hvala
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Threadovi i varijable13.11.2011. u 01:10 - pre 151 meseci
> Nadam se je moje pitanje bilo razumljivo znaci zanima me kako da napravim globalnu varijabu za sve threadove alo koju u jednom trenutku moze citati i pisati
> samo jedan thread dok drugi cekaju dok on ne zavrsi.

Ako misliš na threadsafe povećanje promenljive onda možeš koristiti InterlockedIncrement API funkciju. Ako moraš jedan segment koda koda sme koristiti samo jedan thrad onda koristi CriticalSection. Ako rad sa promenljivom mora biti ekskluzivan na nivou nekog zadatka u jednom threadu onda možeš koristiti Evente ili Mutexe. U SyncObjs unitu imaš nekoliko klasa koje ti mogu pomoći u radu sa WinApijem.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Threadovi i varijable

[ Pregleda: 1056 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.