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
Mitä mieltä olet?
Miehestä jolla ei ole yhtään kaveria, ei facebookissa eikä livenä ja hän harrasta ja tekee kaiken yksin. Onko vähän outo1491215Muistakaa pojat tämä.
Mies joka haluaa naisen, löytää keinon. Ei epäröi eikä hämmennä. Tekee kaiken eteenne.1191038Muhun rakastuu kaikki naiset, mut mä en rakastu niihin
Mun vaatimustaso on 10+ Mut mua tavottelee 7+ naiset214780En ehkä onnistu siinä
Kovasti minä yritän näyttää kauniilta, vain sinua varten, mutta en taida onnistua siinä.58765- 63725
Viesti jonka haluaisit lähettää...
hänelle. Onko jokin pieni tunniste jonka vain te tiedätte. Onko naiselta miehelle tai toisinpäin, joku joku päivämäärä25716- 135696
Pahoin pelkään nainen
että pidät minua epäempaattisena, itsekeskeisenä, narsistisena ja kylmänä ihmisenä. Oletko koskaan ajatellut, että minus57622- 44621
Joko kaupungin johtaja saa iskeä kuokkansa kunttaan
Särkiperällä tapahtuu 25.8 2026 klo.10.00 Fingrid Oy:n ja kahden maanomistajan kanssa maan lohkominen.Mahdollisesti täss58554