Results 1 to 7 of 7

Thread: Vraag of dit zo mag met een thread.

  1. #1

    Vraag of dit zo mag met een thread.

    Ik heb onderstaande code voor een simpele thread die een http.get naar internet doet en daarna stopt. Een paar minuten later start ik de thread weer met ThreadMetaData.Create(false); En dat doe continu zo ongeveer om de 3 minuten.

    De vraag is mag dit zo? Of creëer ik hiermee bijv. een memory leak.
    Code:
    type
      ThreadMetaData = class(TThread)
      private
      protected
        procedure Execute; override;
      end; { of class declaration }
    
    ...
    
    procedure ThreadMetaData.Execute;
    begin
      //Doe http.get en stop daarna
    end; { of ThreadMetaData }
    Niets is zo gemakkelijk als het lijkt.

  2. #2
    - Het component dat de http.get doet moet gecreeerd worden in the thread anders draait hij alsnog in de main thread.
    - het aanmaken van een thread en verwijderen van een thread kost tijd. Zelf zou ik kiezen voor het aanmaken van een thread en als ik de get nodig heb een signal naar de thread sturen dat de get uitgevoerd moeten worden.
    - Als je een async http component gebruikt zoals bijv ICS dan is er geen thread nodig.

  3. #3
    De http wordt in de thread aangemaakt ( HTTP_Thread:= TIdHTTP.Create(nil); ) en vrijgegeven HTTP_Thread.Free.

    Ik zit mij alleen af te vragen of met ThreadMetaData.Create(false); niet steeds een nieuwe thread creëer terwijl de oude ook blijft bestaan. Want ik zie het geheugen gebruik namelijk langzaam oplopen.
    Niets is zo gemakkelijk als het lijkt.

  4. #4
    FreeOnTerminate op true gezet?

  5. #5
    Euch nee, had ik er niet in. Heb de code even aangepast. Ben benieuwd of dit helpt.
    Niets is zo gemakkelijk als het lijkt.

  6. #6
    Na een dag draaien lijkt het er op dat FreeOnTerminate werkt :-)
    Niets is zo gemakkelijk als het lijkt.

  7. #7
    Via het OnTerminate event kun je ook nog nagaan of Thread is uitgevoerd.
    Onmogelijk... Is geen feit, maar een mening.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •