Einzelnen Beitrag anzeigen

Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#2

Re: Anwendung --> Dienst erstellen

  Alt 27. Okt 2004, 20:10
Hallo,

wenn ich das richtig verstehe soll er dienst im Hintergrund etwas vor sich hin rechnen solange der Rechner an ist? Ich würde dazu die Verarbeitung der Blöcke in einen Thread auslagern. Dieser wird dann beim Start des Dienstes angestoßen. Im Anhalte Ereignisses des Dienstes teilst du dem Thread dann mit das er doch bitte anhalten soll und wartest bis er fertig ist.

Zum erstellen des Threads gibt es im Delphi unter Datei->Neu... ein kleines Symbol was das Grundgerüst erstellt. Deine Blockverarbeitung kommt dann in das Excute was dort schon angelegt rein, der Art:

Delphi-Quellcode:
procedure TWorkerThread.Execute(..);
begin
  while not Terminated do
  begin
    // hier immer einen Block abarbeiten
  end;
end;
Das starten vom Dienst aus sieht dann so aus:

myThread := TWorkerThread.Create(false); und zum beenden sollte das reichen:

Delphi-Quellcode:
if Assigned(myThread) then
begin
  myThread.Terminated;
  myThread.WaitFor;
  FreeAndNil(myThread);
end;
So hoffe das gibt dir erstmal ein paar Ansatzpunkte... ansonsten gabs hier noch irgendwo ein Tutorial zum Thema Threads... ich bin aber so vergeßlich - wird sicher noch jemand die URL posten.
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat