Problem:
Da Autoit selbst ja nicht MultiThreading tauglich ist habe ich Teilfunktionen vom Hauptprogramm in zwei weitere separate Programme ausgelagert.
Damit sind aber einige unschöne Problem verbunden.
Die benötigten Variablen wie zum Beispiel das gemeinsame Arbeitsverzeichnis und noch einiges mehr übergibt mein Hauptprogramm per Comandline Parameter beim Aufruf des ausgelagerten Programms.
Das ist soweit ok, wenn auch bei 10 Parametern etwas unübersichtlich.
Im Anschluss arbeiten alle Programme ihre Aufgaben ab. Eines der ausgelagerten Programme kann allerdings nur die halbe Arbeit ohne ein Ergebnis des Hauptprogramms abarbeiten. Sobald das Hauptprogramm also die zeitgleich ablaufende Aufgabe erledigt hat muss das Ergebnis des zweiten ausgelagerten Programmes abgewartet werden und anschliessend zusammen mit einigen Informationen des Hauptprogrammes ans erste ausgelagerte Programm übergeben werden, damit dieses fortfahren kann. Das Hauptprogramm wartet nach einer weiteren Augabe nun wiederum aufs Ergebnis des ersten augelagerten Programms um seinerseits die letzte Aufgabe abzuarbeiten.
Bedeutet:
Ich muss mehrmals Daten zwischen den Programmen während der Laufzeit austauschen, idealerweise sogar noch öffters als derzeit um die Progressbar im Hauptprogramm zu aktualisieren. Aushilfsweise mache ich die Datenübertragung über Textdateien, was aber meiner Meinung nach recht unschön ist, auch wenn diese sofort wieder vom jeweils anderen Programm gelöscht werden.
Frage:
Gibt es auch bessere und effektivere Möglichkeiten um eine Kommunikation zwischen den Programmen zu ermöglichen?