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
Oot upea nainen, älä vähättele ittees
Ja tietojeni mukaan 2 muuta on susta kiinnostuneit mun lisäks. 👀58936- 78875
KP-Sesongilla ongelmia?
Tarvitsen luotettavaa katonpuhdistajaa ja kuulin, että KP-Sesonki Oy tekee hommat edullisesti ja asiakkaan tarpeet huomi18836Jämsän Paras Ravintola
Särkijärven kioskiin on avattu uusi upea Maucas ravintola joka on jämsän paras. Loistava palvelu ja herkullinen ruoka. R52776Huh huh...
Törmäsin toisaalla tekstiin, mitä ajattelet masturboidessasi? Yksi kommentti, avaruusolioita! Täh?! Helvettiläinen oik208681- 38559
- 43546
Ihmettelet nainen, miten vielä sinua rakastan
No jos en enää sinua ajattelisi, niin ei se mitään rakkautta olisi alunperinkään. En tarvi sinusta nähdä merkkiäkään, ni39505- 47495
Kiellettyjä ajatuksia
Istutaan sylikkäin, katson sun silmiin, vastaat kstseeseen ja kiedon kädet sun ympärille. Huulet koskettaa sun huulia,37449