Moniajo

säikeet

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

1

247

    Vastaukset

    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. Suomen Yrittäjät täräyttää: Sunnuntain tuplapalkka pois lomat lyhyemmiksi ja arkipyhät palkattomiksi

      Edunvalvontajärjestö Suomen Yrittäjät esittää muun muassa sunnuntain tuplapalkan lakisääteisyyden poistamista ja arkipyh
      Maailman menoa
      231
      1953
    2. Missä tapasit kaivattusi

      ensimmäisen kerran?
      Ikävä
      84
      1198
    3. Jani Wickholm on kuollut

      Tämä oli Janilta hieno laulu. https://youtu.be/72wWxqWon7k?is=5HKdV-H8yY466YXm
      Kotimaiset julkkisjuorut
      112
      1008
    4. Mikä on loppuelämäsi suunnitelma

      Kaivattuasi kohtaan? Olet päättänyt jotain?
      Ikävä
      85
      995
    5. J-mies, miten voit olla niin varma siitä

      että minä olen juuri se nainen, kenen ajattelet ja haluat minun olevan, se kenelle avaat ajatuksiasi ja tunnustat syvimp
      Ikävä
      87
      837
    6. Aattelin nainen

      Jos oppisin puhumaan. Rehellisesti, rennosti ja hetkessä.
      Ikävä
      119
      764
    7. Uskaltaisitko vielä

      Lähestyä vai et kaivattuasi?
      Ikävä
      111
      763
    8. Sinkkumiehet hukkaavat tärkeän ässän hihastaan kun

      ...eivät suostu kavereiksi naisten kanssa. Mikä voi olla heillä syynä? Hyväksyvät vain naisen, joka suorastaan anelee sa
      Ikävä
      93
      739
    9. Alan pikkuhiljaa olemaan sinut

      sen asian kanssa, että en tule enää löytämään ketään. Mikä tilanne sinulla on ja miten olet koittanut ratkaista tilante
      Sinkut
      122
      688
    10. Pohjola talo

      Kuka arvaa lähimmäs miten nopeasti tulee konkurssi uusilla yrittäjillä
      Kuhmo
      23
      671
    Aihe