Moniajo

säikeet

Miten säikeitä käytetään Pascal:ssa. Mitä asioita pitää ottaa huomioon.

1

247

    Vastaukset 1

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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

    1. Suomi meni ihan itse sössimään peruskoulunsa

      Nyt syytellään maahanmuuttoa, vaikka ihan itse lopetettiin vaatimaan oppilailta koulunkäynnin tarkoitus eli opiskelu ja
      Maailman menoa
      297
      1223
    2. Miksi vanhusraiskaajaa ei ole palautettu?

      Ukkola kysyy Rantaselta, vaikka perussuomalaiset ovat olleet hallituksessa kolme ja puolivuotta. Rantasen vastaus on "
      Maailman menoa
      307
      1148
    3. 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ä. 😔
      Ikävä
      50
      958
    4. Mitä kirjainta kaipaat?

      🤣🤣🤣🤣🤣
      Ikävä
      87
      914
    5. Mitä sä teet

      Juuri nyt?
      Ikävä
      106
      899
    6. Onko ikäerolla väliä?

      Mitä mieltä ootte? Meillä on 14 vuotta ikäeroa.
      Ikävä
      101
      869
    7. Uusioperhe vai salasuhde?

      Mitä ensisijaisesti haluat? Pelkään, että menetän järjen sun kanssa 😉
      Ikävä
      110
      733
    8. Miten vaikuttaa

      Jos kaivatustasi on moni muukin kiinnostunut?
      Ikävä
      64
      588
    9. Katri Helena rikkoi hiljaisuuden dramaattisella uutisella: "Elossa ja ilossa ollaan"

      Katri Helena on sinivalkoinen ääni. Hänen klassikkohittinsä ovat tärkeä osa suomalaista kansanperintöä. Katri veti jääh
      Suomalaiset julkkikset
      13
      584
    10. Anni Ihamäki ja Ilkka-rakas vetivät tiukan rajan TTK:ssa: "Kyllä spekuloitiin"

      Anni Ihamäki on naimissa Ilkka Ihamäen kanssa. Aviopuoliso tunnetaan myös nimellä Hovimuusikko Ilkka. Heillä on kaksi yh
      Suomalaiset julkkikset
      3
      577
    Aihe