Thema: Delphi Thread - Event dilemma

Einzelnen Beitrag anzeigen

Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Thread - Event dilemma

  Alt 22. Mär 2006, 16:16
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
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat