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
- 881408
- 681166
- 65971
Ei kai nyt kukaan oikeasti kuvittele, että hallitus eroaisi Garden Helsingin takia?
Ongelmanahan tässä kuitenkin on se, että mitään tavallisuudesta poikkeavaa ei ole tapahtunut. Joten mikä se eroperuste165868- 92771
Välillä tulee haikeus
Et kaikki päättyi näin. Etten saanut vastauksia. Ei meitä oltu tarkoitettu. Niin se vain on.78764Tunteilla leikkiminen
Oletko leikkinyt kaivattusi tai jonkun kiinnostuneen tunteilla, pelannut jotain peliä tai pelleillyt asioilla? Miksi?103684Oothan sä erilainen mies
Kaikintavoin. Ikävä kyllä en tunnistanut sitä seikkaa aikoja sitten, ja nyt olen armottoman rakastunut. Olen vaan ❤️37646Mahdoton tilanne
Täällä monella tuntuu olevan jumissa oleva tilanne. Joillakin kaipuu ja ikävä on kestänyt jo vuosia. Osapuoli/puolet ova60645- 43641