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
Haapaveden upea kurvikuningatar
No nyt on kyllä mahtava uutinen että Haapaveden rohkea ja toimelias nainen ja yrittäjä on päässyt finaaliin kurvikuninga1452126Suomi meni ihan itse sössimään peruskoulunsa
Nyt syytellään maahanmuuttoa, vaikka ihan itse lopetettiin vaatimaan oppilailta koulunkäynnin tarkoitus eli opiskelu ja206948Uskaltaisitko ihana nuorempi nainen lähettää
WhatsApp -viestiä, jos sulla on mun numero. Olisin ihan haltioitunut... Tykkään ja kaipaan ❤️❤️91907Meinasi nainen mennä pasmat sekaisin
Rupesin vapisemaan, kun huomasin sinut. Mutta sain sentään juuri ja juuri koottua itseni, etten ihan häpäissyt itseäni.37858- 60840
Tuli paha mieli miten kaikki meni meillä
Harmittaa myönnän sen, kun molemmilla oli selvästi toiveita ennen kuin sukset meni ristiin. Olen jäässä. 😔48779Lidilikö Suomussalmelle
Tännekki Lidili. Loppus tuo kiskominen näillä jäljellä olevilla. K-Market ihan sikakallis ja hyvin ylimieliset omistajat51746- 73711
Upeaa Google!
Kohta on töitä tarjolla kaikille! Suomen taloushistorian suurin investointi ja Kajaani mainittu! Sähkö kyllä riittää, tö285711Ei makeat pimut sytytä
sen jälkeen kun on nähnyt sinut. Olet vain ihastus vailla vertaa. Kun sinut tuntee muut eivät tunnu miltään. Tajuatko ol35660