Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
Delphi 2007 Professional
|
Nachrichtenverarbeitung zwischen Threads
22. Jan 2010, 06:19
Hi,
wir implementieren ein Nachrichtenaustausch zwischen 2 Threads mittels PostThreadMessage und einer
entsprechenden Auswertungsmethode in jedem Thread.
2 Probleme sind aufgetaucht:
1.) selbst beim einfachsten Thread funktioniert das nur wenn in der Hauptschleife des Thread
application.processmasseges steht.
2.) es funktioniert nur stablil wenn PostThreadMessage in einem Event, also in einem Timerevent oder
in einem Event einer seriellen Schnittstelle aufgerufen wird. Rufe ich PostThreadMessage im Thread
irgendwo sonst auf wird die Nachricht manchmal gesendet manchmal nicht. PostThreadMessage gibt jedesmal
true zurück, die Nachricht müsste also abgesetzt sein.
In dem Problemthread sind allerdings auch ein Timer (Delphi) und eine serielle Schnittstellenkomponente (Asynchpro)
implementiert. Klaut mir da jemand meine Messages?
Kann ich die Messageverarbeitung irgendwie erzwingen?
Grüsse
Rainer
PS: den Code kann ich hier nicht ablegen ist mittlerweile zu umfangreich.
Rainer Unger Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
|