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. Kysely : Juuri kukaan ei halua nykyisen hallituksen jatkavan

      Ylen kysely: Juuri kukaan ei halua nykyisen hallituksen jatkavan – eivät edes halli­tus­puolueiden omat kannattajat Kes
      Hallitus
      150
      1643
    2. Salaisuudet paljastuu

      Viimeiset hetket meneillään ottaa yhteyttä. Kertoa totuus ja selvittää asioita. Viimeiset hetket meneillään jos joku
      Ikävä
      143
      1413
    3. Kelan mukaan veronpalautukset ovat tuloa tuet lähti

      https://www.is.fi/taloussanomat/art-2000012225387.html Verohallinnon maksama veronpalautus tulee niille, jotka ovat mak
      Maailman menoa
      145
      969
    4. Mies, minkä tiedon juuri nyt haluaisit

      tietää hänestä, naisesta?
      Ikävä
      95
      893
    5. Sinkkujen tilanne kiinassa katastrofaalinen

      800 naista osallistui sinkkujen iltaan, paikalle saapui 0 miestä. Ei mahdollisuuksia, kun nainen on 38 -vuotias, ja
      Sinkut
      126
      891
    6. 65
      823
    7. Stubbin ylimielinen uho vie Suomea sotaan!!?

      https://m.youtube.com/watch?v=aQ3c540lm9o Miten voi olla että maamme presidentii toimii näin vastuuttomasti kuten hölöt
      Maailman menoa
      335
      689
    8. Minne katosi Sofian Jeff-rakas ystävä?

      Seiskalehden mukaan Jeffreytä ei ole näkynyt, kuin kesäkuussa maininta Sofian ommissassa insramissa. Onko jo tullut ero
      Kotimaiset julkkisjuorut
      160
      624
    9. Aloitan kiertotalouden

      Aloitin tänään kiertotalouden, ei mulla nyt oikeastaan muuta MOI
      Lieksa
      39
      606
    10. Kuka hukkui

      Kuka hukkui eilen kätkytniementiellä?
      Pyhäjärvi
      8
      574
    Aihe