Miten säikeitä käytetään Pascal:ssa. Mitä asioita pitää ottaa huomioon.
Moniajo
1
247
Vastaukset
- Kukame
// esitellään jossain meidän oma säieluokka
Type
TMyThread = class(TThread)
public
data: String;
procedure Execute: Override;
end;
procedure TMyThread.Execute;
var
idx: Integer;
begin
// tämä funktio ajetaan omassa säikeessä. Täältä ei saa päivittää
// lomakkeen VCL komponentteja suoraan koska saattaa tulla
// konflikti MainUI säikeen kanssa.
for idx:=0 to to 10 do begin
sleep(1000); // esimerkissä nukutaan jonkin aikaa
end;
end;
- - - - -
// käytetään säiettä vaikka päälomakkeella
procedure TFrmMain.ThreadTerminated(Sender: TObject);
var
data: String;
begin
// säie lopettanut elämänsä, luetaan siitä lopputulos tai
// mitä ohjelma haluaakin tehdä. Tätä kutsutaan MainUI
// säikeessä joten on turvallista päivittää vaikka
// formien VCL komponenttien tilatietoja.
data := (Sender as TMyThread).data;
end;
procedure TFrmMain.btnStartThread(Sender: TObject);
var
thr1: TMyThread;
begin
// luo instanssi mutta älä käynnistä(suspended=true) automaattisesti.
// instanssin konstruktoria (free) kutsutaan automaattisesti kun
// säikeen elinkaari päättyy. Ennen destruktoria kutsutaan ThreadTerminated
// funktiota jossa voidaan tehdä lopputemput.
thr1 := TMyThread.Create(true);
thr1.freeOnTerminate := true;
thr1.onTerminate := ThreadTerminated;
thr1.Resume; // käynnistää säikeen
// eli meidän ei tarvitse eikä saa kutsua täällä thr1.Free funktiota koska
// järjestelmä poistaa sen automaattisesti. Jätetään se pyörimään taustalle.
end;
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Suomen Yrittäjät täräyttää: Sunnuntain tuplapalkka pois lomat lyhyemmiksi ja arkipyhät palkattomiksi
Edunvalvontajärjestö Suomen Yrittäjät esittää muun muassa sunnuntain tuplapalkan lakisääteisyyden poistamista ja arkipyh2311953- 841198
Jani Wickholm on kuollut
Tämä oli Janilta hieno laulu. https://youtu.be/72wWxqWon7k?is=5HKdV-H8yY466YXm1121008- 85995
J-mies, miten voit olla niin varma siitä
että minä olen juuri se nainen, kenen ajattelet ja haluat minun olevan, se kenelle avaat ajatuksiasi ja tunnustat syvimp87837- 119764
- 111763
Sinkkumiehet hukkaavat tärkeän ässän hihastaan kun
...eivät suostu kavereiksi naisten kanssa. Mikä voi olla heillä syynä? Hyväksyvät vain naisen, joka suorastaan anelee sa93739Alan pikkuhiljaa olemaan sinut
sen asian kanssa, että en tule enää löytämään ketään. Mikä tilanne sinulla on ja miten olet koittanut ratkaista tilante122688- 23671