Results 1 to 3 of 3

Thread: het onderbreken en opnieuw starten van een windowservice

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    het onderbreken en opnieuw starten van een windowservice

    Ik ben een windows service met een thread erin.
    Sinds enige tijd is TTread.resume en TThread.suspend depreciated. Daarvoor moet je gebruik maken van start en stop.

    Delphi Code:
    1. procedure TMailservice.ServiceContinue(Sender: TService;
    2.   var Continued: Boolean);
    3. begin
    4.   fMail.start;
    5.   Continued := True;
    6. end;
    7.  
    8. procedure TMailservice.ServicePause(Sender: TService; var Paused: Boolean);
    9. begin
    10.   fMail.terminate;
    11.   Paused := True;
    12. end;
    Dit bovenstaande gaat bij een continue niet werken. Dan moet ik toch opnieuw een start uitvoeren van de thread?

    Delphi Code:
    1. procedure TMailservice.ServiceContinue(Sender: TService;
    2.   var Continued: Boolean);
    3. begin
    4.   fMail := TMailthread.Create(false);
    5.   fMail.start;
    6. end;
    var Continued: Boolean heeft dan toch geen functie meer
    Delphi is great. Lazarus is more powerfull

  2. #2
    Ik zou bij ControlsAccepted de SERVICE_ACCEPT_PAUSE_CONTINUE verwijderen en de Taservoce.ServiceContinue en TService.ServicePause gewoon verwijderen. Want waarom heb je die nodig???

    Als die SERVICE_ACCEPT_PAUSE_CONTINUE er niet bijstaat hoef je ook geen Continue en Pause te maken.

  3. #3
    Continued geeft alleen aan of de service succesvol door heeft kunnen gaan.

    Dat service raamwerk weet natuurlijk niet wat je in je event handler hebt gedaan, en of dat allemaal goed ging. Met die variabele geef je dat terug. Gewoon op True zetten dus. Of deze events uitfaseren zoals Rik zegt, maar dan geldt het evengoed voor andere events met een soortgelijke variabele, zoals OnStart.

    Je kan overigens ook je eigen thread in de wacht zetten. Stel dat het dus duur of moeilijk is om een TMailthread op te tuigen, dan kan je ook de bestaande mailthread pauseren i.p.v Terminate aan te roepen.

    Wellicht interessant om ook dit raamwerkje te bekijken? Gevonden via deze post.
    Last edited by GolezTrol; 24-May-22 at 00:01.
    1+1=b

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
  •