AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ist ServiceExecute im Hauptthread

Ein Thema von QuickAndDirty · begonnen am 8. Dez 2010 · letzter Beitrag vom 14. Dez 2010
 
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.995 Beiträge
 
Delphi 12 Athens
 
#1

Ist ServiceExecute im Hauptthread

  Alt 8. Dez 2010, 09:49
Delphi-Version: 5
Edit: Delphi Version ist nicht 5 sondern 7 und 2007

Hallo ,
mal ne kleine Frage am Rande...
Die Methode ServiceExecute bei einem Dienst läuft die im Hauptthread?

Der Dienst reagiert auf Netzwerkanfragen und führt dann in den TCP/IP-Server-Unterthreads
Komponenten aus...und die sind zum Teil nicht threadsicher, deswegen werden sie mit der der Methode
Code:
TThread.Synchronize(Thread,TCmdData(cmdlist.Objects[cmdlist.IndexOf(cmd)]).ProcPointer);
ausgeführt. Nur bekomme ich ab und zu (und nur bei einem von vielen hundert Kunden) die Exception ins Lock
"CheckSynchronize wurde vom Thread $1084 aufgerufen, der NICHT der Haupt-Thread ist..." ...und das wars dann mit dem Dienst.



So rufe ich checksyncronize auf
Code:
procedure TService1.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    ServiceThread.ProcessRequests(True);
    Classes.CheckSynchronize;
  end;
end;
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty ( 8. Dez 2010 um 11:44 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz