Miten säikeitä käytetään Pascal:ssa. Mitä asioita pitää ottaa huomioon.
Moniajo
1
239
Vastaukset
- 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
On tiedossa, että venäjämieliset diggaavat diktatuurista venäjää
jossa ei esim. ole sanan- ja lehdistönvapautta. Mutta keitä nämä venäjän palvojat sitten ovat, ei heitä toki paljon ole192146Vihreiden, SDP:n ja Vasemmistoliiton kannattajista selvästi alle puolet on miehiä
ja silti joku punafeministi valitti kokoomuksen naiskannattajien puutteesta, vaikka siellä on enemmän naisia kuin punavi402045Belfastissa käynnissä kunnon persuilu
Joku random mamu tekee rikoksen, niin sikäläiset naamiopersut kostavat tuhoamalla kantaävestön omaisuutta. Liekö siellä181920Persujen kannatusromahdus tekee kesästä 2026 nautinnollisen
Satoi tai paistoi, niin Suomen kansalaisella on kuluvana kesänä syytä hymyyn. Niin upealta tuntuu persujen kannatusroma461357- 731297
Onko kaivattusi rohkeampi kuin sinä?
Vai oletko sinä rohkeampia? Mikä on rohkea teko, minkä sinä tai kaivattusi on tehnyt? Mitä siitä seurasi?46863Kaunein nimi
Mikä on mielestäsi kaunein miehen ja naisen nimi? Haluaisitko itse olla joku toisen niminen?56772Farmi-Amski ja Jucci Hellström - Sydämiä satelee - Onko tässä jotain enemmän?
Amskidamski Anne-Mari Tarkkio ja Jucci Hellström olivat samaan aikaan Farmi Suomi -realityssä. Nyt somessa on nähty mat8721Rakastan sinua hiljaisuudessa
Rakastan sinua hiljaisuudessa. Olisit minun tai et, olen odottanut sinua vuosisatojen ajan. Ilman sinua sydämeni on yksi32678- 50676