Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TThread.Synchronize funktioniert nicht in Service (https://www.delphipraxis.net/45608-tthread-synchronize-funktioniert-nicht-service.html)

maurerp 9. Mai 2005 12:53


TThread.Synchronize funktioniert nicht in Service
 
Hi,

habe folgendes Problem unter Delphi7:

Ich habe eine Dienstanwendung erstellt, und erzeuge im OnStart-Event einen Arbeits-Thread. Dieser Arbeits-Thread erzeugt wiederum weitere Threads.

Problem: Ich kann innerhalb der Threads keine Methoden über "Synchronize" aufrufen. Hab schon mehrfach gelesen, daß ich in Nicht-GUI-Anwendungen explizit "CheckSynchronize" über eine Ereignisbehandlungsroutinge für "WakeMainthread" aufrufen muß.

Wenn ich die besagten Methoden ohne "Synchronize" aufrufe, funktionierts.

Kann das sein, oder wo sonst liegt ggf. mein Problem? An welcher Stelle müßte ich ggf. "CheckSynchronize" aufrufen? Laut Quellcode muß "CheckSychronize" innerhalb des Haupt-Threads aufgerufen werden. Komm ich an den innnerhalb meines Dienstes überhaupt ran???

Bitte dringend um Hilfe.

Gruss
Patrick

Luckie 9. Mai 2005 14:28

Re: TThread.Synchronize funktioniert nicht in Service
 
Das kann mit Synchronize nicht funktionieren. Synchronize synchronisiert Zugriffe auf den Haupthread mit dem Fenster der VCL. Ein Service hat aber kein Fenster. Das wäre jetzt so meine Erklärung, warum das nicht geht. Benutz doch einfach CriticalSections.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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