Hi dieterds,
Ich bearbeite Files. Und mithilfe der Klasse CRecFileFind kann ich in einer for-Schleife File für File "holen" und dieses dann einer Klasse weitergeben und weiterverarbeiten. Aus diesem Grund sollte ich den Thread jedes Mal neu aufrufen, das aktuelle File durchscannen lassen und dann wieder schliessen. Das ist aber nicht die Problematik. Es geht eher darum, dass ich in der Methode die ich aufrufe danach keinen Zugriff auf Membervariablen habe. Sobald er entweder auf eine Zeile trifft wo ich etwas in ein Control schreiben will oder wenn er auf eine normale Funktion die ich aufrufen will trifft springt er einfach wieder zur ersten Zeile des Threads zurück. Beispiel:
Ich habe folgende Funktionen (alle in der selben Klasse):
- OnButtonIrgenwas()
- ProcessFile()
- GetDatabaseInformation()
- GetRouteInformation()
So, dann will ich aus dem OnButtonIrgendwas() die Funktion ProcessFile() in einem neuen Thread aufrufen. In DIESER Funktion (ProcessFile) benutze ich aber noch andere Funktionen damit mein Vorgang durchgeführt werden kann. Und zwar GetDatabaseInformation() und GetRouteInformation. Nun, das weiterleiten von OnButtonIrgendwas() zu ProcessFile() in einem neuen Thread funktioniert. Sobald ich jedoch im neuen Thread eine der zwei "Hilfsmethoden" aufrufen will springt er mir sofort zu der ersten Zeile von ProcessFile() zurück. Und auch wenn ich eine Editbox (egal ob sie Control, String oder was auch immer ist) beschreiben will, springt er auch sofort zu der ersten Zeile von ProcessFile() zurück. Ist das soweit verständlich oder hab ich etwas komisch erklärt?
Umgehen kann ich das alles nicht. Die Hilfsmethoden brauche ich umbedingt, beschreiben muss ich die Membervariablen meines Dialoges ebenfalls. Der Prozess kann halt einige Minuten dauern und wenn einfach nichts geschieht denkt der User das Programm sei abgekratzt, also muss ich ihm zeigen welche Files momentan bearbeitet werden etc.
Danke für die Aufmerksamkeit