Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 1 odgovor
  • 1.489 pregleda

Najnovija ↓

Threadovi i varijable 12.11.2011. u 20:42 · pre 182 meseca #1
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
Re: Threadovi i varijable 13.11.2011. u 02:10 · pre 182 meseca #2
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme