Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Thread - Event dilemma (https://www.delphipraxis.net/65939-thread-event-dilemma.html)

Tonic1024 22. Mär 2006 16:16


Thread - Event dilemma
 
Hallo...

Ich hab, als Blackbox, ein Programm geschrieben, dass Daten vom ComPort empfängt. In meiner Entwicklungsumgebung (eine EXE) klappt das auch ganz gut. Jetzt soll aus dem Code, der daraus entstanden ist eine DLL werden und nun hab ich ein Problem bei der Umsetzung.

Ablauf:
Code:
Programm wirft einen Befehl über den ComPort raus.
ComPort-Komponente löst einen Event "String empfangen" aus und speichert den String im Puffer.
Programm lässt gleichzeitig einen Parser über den Puffer laufen und beendet diesen Vorgang sobald die "Needle" (also das, wonach gesucht wird) gefunden oder ein Timeout erreicht wurde.
Das funkt soweit sehr zuverlässig. Allerdings kann der Event ja nur ausgelöst werden wenn ich in der Parser-Schleife regelmäßig ProcessMessages aufrufe - Klar. Dies geht nun aber weder in einem Thread noch in der DLL.

Ablauf:
Code:
Programm wirft einen Befehl über den ComPort raus.
Parser scannt den Puffer und findet nur nen leeren String.
Parser läuft in den Timeout.
Event löst aus und schreibt in den Puffer.
Wie geht man jetzt weiter vor? Was kann ich tun? Wenn ich den Zugriff auf das Modem in einen Unter-Thread verlagere ist mir doch auch nicht geholfen, oder?

Ich benutze die ComPort-Komponente TComPort aus CPortLib Library.

Toni

Tonic1024 23. Mär 2006 15:23

Re: Thread - Event dilemma
 
Die 24 Stunden sind ja fast rum...

Ich hab das nun gelöst indem ich die AsyncPro Komponenten benutze. Bei vergleichbarem Aufbau (wie oben beschrieben) löst hier der Event aus. Auch im Thread und in der DLL.

Muss ein Problem von der CPortLib sein.

Toni


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz