Einzelnen Beitrag anzeigen

Niotronic

Registriert seit: 5. Okt 2010
Ort: Graz
7 Beiträge
 
Delphi 2010 Architect
 
#1

MultiThreading Ereignisbearbeitung GUI Applikation / Service

  Alt 13. Sep 2013, 10:03
Hallo,
meine Applikation kann sowohl als GUI Applikation als auch als Service gestartet werden und kommuniziert über einen oder mehrere Comports also auch mit dem Firebird Server über IBObjects. Als Applikation läuft alles wunderbar. Wird das ganze als Service gestartet läuft es zwar prinzipiell auch, jedoch crasht es meist nach wenigen Minuten. Als Ursache habe ich die offenbar parallele Abarbeitung von Ereignissen des Comports (OnRxChar, OnTimeOut, On SendData) erkannt, d.h. bei Betrieb als Applikation werden diese Ereignisse wie zu erwarten (werden von der TComport Komponente (von WinSoft.sk) da mit Synchronize aus dem Comport Thread aufgerufen streng sequentiell abgearbeitet. Bei Betrieb als Service werden diese Ereignisse teilweise gleichzeitig abgearbeitet - d.h. während gerade Daten empfangen werden wird das timer gesteuerte Ereignis SendData abgearbeitet - die Events scheinen sich gegenseitig zu unterbrechen (Interrupt like), was darauf hindeutet, das die Synchronizeaufrufe nicht mehr mit dem hauptthread synchronisiert werden ?
Warum unterscheidet sich die Ereignisbearbeitung bei Betrieb als Applikation und als Service ?

mfg

Klaus
Klaus
  Mit Zitat antworten Zitat