Im Anhang meine Fehlermeldung. Folgende Situation:
Code: Alles auswählen
nAbfrageIntervall := ZEITEINS->ZEITIMP * 100
oThread_import := Thread():new()
oThread_import:start( {|| proc_verzeichnisabfrage(cSearchPath,cImportPath,oDlg_start,lApplicationReady) } )
oThread_import:setInterval( nAbfrageIntervall )
*************************************************************************
* Artikelabfrage und Export der Artikel aus SelectLine in den Shop *
*************************************************************************
nArtikelIntervall := ZEITEINS->ZEITEXP * 100 // *100: 100tel Sekunden, *60: Minuten, *1 Min
oThread_export := Thread():new()
oThread_export:start( {|| proc_artikel_export(cExportPath,oDlg_start,lApplicationReady)} )
oThread_export:setInterval( nArtikelIntervall )
Ich habe 2 Aufrufe, die getrennt voneinander ein Mal täglich und einmal pro Minute stattfinden. Dabei wird innerhalb dieser Proceduren ein COM-Objekt erzeugt. Soweit alles kein Problem funktioniert auch wunderbar. Bis sich die beiden Proceduren zufällig irgendwann überschneiden. Das Problem ist nämlich, dass das COM-Objekt nur einmal gleichzeitig erzeugt werden kann, das hat nämlich Lizenz Hintergründe.
Meine Idee: Ich erzeuge das COM-Objekt nur einmal und übergebe es als Parameter in
Code: Alles auswählen
proc_verzeichnisabfrage
Code: Alles auswählen
proc_artikel_export
Zweiter Versuch: Ich erstelle das COM-Objekt als PUBLIC Variable. Resultat: Dieselbe Fehlermeldung.
Was kann ich tun?
Ich habe auch schon versucht das eine Intervall auszuschalten, solange das andere aktiv ist. Hat nicht wirklich funktioniert, aber das ist jetzt auch Nebensache. Gibt es eine Möglichkeit das COM-Objekt außerhalb der beiden Threads zu erzeugen und dann in die Threads zu übergeben?