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. 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 outo
      Ikävä
      202
      2122
    2. Muistakaa pojat tämä.

      Mies joka haluaa naisen, löytää keinon. Ei epäröi eikä hämmennä. Tekee kaiken eteenne.
      Ikävä
      159
      1429
    3. Muhun rakastuu kaikki naiset, mut mä en rakastu niihin

      Mun vaatimustaso on 10+ Mut mua tavottelee 7+ naiset
      Ikävä
      227
      1071
    4. Oletko päättänyt

      Että luovutat minun suhteeni
      Ikävä
      71
      917
    5. 58
      908
    6. Pahoin pelkään nainen

      että pidät minua epäempaattisena, itsekeskeisenä, narsistisena ja kylmänä ihmisenä. Oletko koskaan ajatellut, että minus
      Ikävä
      72
      831
    7. Mikä sua mies vaivaa?

      Siis oikeasti.
      Ikävä
      47
      823
    8. 93
      777
    9. Martina avaa suhdettaan

      IL 22.7: Martina avaa suhdettaan nuoreen Muhikseen. Nyt on jo vakavaa, on käyty syömässä Itä-Helsingissä. Onkohan muutt
      Kotimaiset julkkisjuorut
      200
      697
    10. Hyvinvointitalo, mitä sanoo Korkein hallinto-oikeus . Mikä on kansalaisten oikeusturva?!

      Onpa mielenkiintoisessa vaiheessa Pyhäjärven hyvinvointitalon kohalo; Saako rakentaa, vai eikö? Kaupungin tekninen johta
      Pyhäjärvi
      109
      687
    Aihe