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
- 1791339
- 851246
- 96977
- 48833
Suhde sinuun on ollut yhtä draamaa
ilman draamaa ja suhdetta. 😅 Oikeasti ei naurata. Nainen, olet pitänyt minut pihdeissäsi. Tunne on välillä vahva ja su40723Haluatko, että kierrän sinut kauempaa
Kun näyttää, ettet minusta innostu. Voisit edes täällä kertoa selvät sävelet.83609Yritit nainen sammuttaa kiinnostukseni
mutta se tehtävä epäonnistui. Se oli sitä bitch -mode vaihetta silloin. Lopputulos on nyt se, että rakastan sinua tällä30538Mikä on vahvuutesi palstalla?
Oletko kuullut asian joltain toiselta vai oletko itse sitä mieltä? Itse luen avarakatseisuuden omaksi vahvuudekseni. Yr111520Kyllä mä tiedän et me kuulutaan yhteen ja se on tähtiin kirjoitettu!!
En vain halua satuttaa sua. Olen aivan perseestä epävakaan ja ADHD oireiluin vuoksi. Ja kun olisi aika "vapauttaa" ne su44498Tunnetta ja sinua on vaikea kuvailla
Paremmin se varmaan aukeaa muulla tavalla. Olen merellä, jossa kovin usein puhkeaa rajuilma ja huomaan taistelevani hu33475