AGB  ·  Datenschutz  ·  Impressum  







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

Thread - Event dilemma

Ein Thema von Tonic1024 · begonnen am 22. Mär 2006 · letzter Beitrag vom 23. Mär 2006
Antwort Antwort
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, 17: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
Benutzerbild von Tonic1024
Tonic1024

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

Re: Thread - Event dilemma

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


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 12:51 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