Miten säikeitä käytetään Pascal:ssa. Mitä asioita pitää ottaa huomioon.
Vastaukset 1
- 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
- 1531641
Stubbin ylimielinen uho vie Suomea sotaan!!?
https://m.youtube.com/watch?v=aQ3c540lm9o Miten voi olla että maamme presidentii toimii näin vastuuttomasti kuten hölöt5431412Martina Aitolehti täräyttää suorat sanat Immu Fight Nightista: "Menen tietysti voittamaan"
Martina Aitolehti on ehtivä. Nyt hän on mukana Immu Fight Nightissa - ja kehässä vastaan tulee Nanna Karalahti. Miten l1581304Sinkut-palstan suurin valhe
Sinkut-palstan suurin valhe on väite siitä, että naisten olisi helpompaa pariutua kuin miesten. Niin kauan kuin sitä va247849Miesten suusta kuultua
Olen tässä samaa nyt muutaman kerran kuullut miesten suusta seuraavaa, toki hieman erilaisin sanavalinnoin kerrottuna: "172842- 58796
- 56698
- 54696
Haluaisin mies tietää pari juttua
Haluisin mies laittaa sulle viestiä ja kysyä paria asiaa sulta. Mun piti kysyä ne tässä joitakin päiviä sitten irl, mutt26690- 52599